Sign inSign up

heyfworld/mkcert

By heyfworld

•Updated 12 months ago

Image
0

250

heyfworld/mkcert repository overview

⁠📋 Quick Start

⁠Basic Usage with Docker Run

Create certificates for localhost:

# Create a directory for certificates
mkdir ./certs && cd ./certs

# Generate certificate for localhost
docker run --rm -v $(pwd):/certs -w /certs heyfworld/mkcert:latest localhost 127.0.0.1 ::1

Create a docker-compose.yml file:

version: '3.8'

services:
  mkcert:
    image: heyfworld/mkcert:latest
    volumes:
      - ./certs:/certs
    working_dir: /certs
    profiles: ["tools"]  # Only run when explicitly called

Generate certificates:

# Generate certificates for localhost
docker-compose --profile tools run --rm mkcert localhost 127.0.0.1 api.local

# Generate wildcard certificates
docker-compose --profile tools run --rm mkcert "*.local" "*.dev.local"

# Install CA (requires host access)
docker-compose --profile tools run --rm -v ~/.local/share/mkcert:/root/.local/share/mkcert mkcert -install

⁠📚 Common Use Cases

⁠1. Local Development Server

Perfect for development environments requiring HTTPS:

# Generate certificate for your local app
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest myapp.local localhost 127.0.0.1

# Files created: myapp.local+2.pem and myapp.local+2-key.pem
⁠2. Multiple Domains

Generate certificates for multiple domains at once:

docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest \
  example.local \
  api.example.local \
  "*.example.local" \
  localhost \
  127.0.0.1
⁠3. Development Environment with Persistent CA
version: '3.8'

services:
  mkcert:
    image: heyfworld/mkcert:latest
    volumes:
      - ./certs:/certs
      - mkcert_ca:/root/.local/share/mkcert
    working_dir: /certs
    environment:
      - CAROOT=/root/.local/share/mkcert
    profiles: ["tools"]

volumes:
  mkcert_ca:
    driver: local

⁠⚙️ Configuration Options

⁠Environment Variables
VariableDefaultDescription
CAROOT/root/.local/share/mkcertCA storage location
TRUST_STORESsystem,nss,javaComma-separated list of trust stores to use
NODE_EXTRA_CA_CERTS-Node.js CA certificates file path
⁠Available Commands
# Show help
docker run --rm heyfworld/mkcert:latest --help

# Install CA to system trust store (requires host access)
docker run --rm -v ~/.local/share/mkcert:/root/.local/share/mkcert \
  heyfworld/mkcert:latest -install

# Show CA location
docker run --rm heyfworld/mkcert:latest -CAROOT

# Uninstall CA
docker run --rm -v ~/.local/share/mkcert:/root/.local/share/mkcert \
  heyfworld/mkcert:latest -uninstall
⁠Advanced Options
# Custom output file names
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest -key-file custom-key.pem -cert-file custom-cert.pem example.com

# Generate client authentication certificate
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest -client example.com

# Generate ECDSA certificate
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest -ecdsa example.com

# Generate PKCS#12 (.p12/.pfx) file for legacy applications
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest -pkcs12 example.com

# Generate certificate from CSR
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest -csr request.csr
⁠S/MIME Certificates

Generate S/MIME certificates for email addresses:

# Automatic S/MIME certificate generation
docker run --rm -v $(pwd)/certs:/certs -w /certs \
  heyfworld/mkcert:latest [email protected]

⁠🏗️ Image Details

  • Base Image: Alpine Linux (latest)
  • Size: ~10-15MB
  • Architecture: AMD64
  • Dependencies: NSS tools, CA certificates

Tag summary

Content type

Image

Digest

sha256:bc292e26a…

Size

10.2 MB

Last updated

12 months ago

docker pull heyfworld/mkcert