本镜像源自 https://github.com/paulczar/omgwtfssl%EF%BC%8C%E5%9F%BA%E4%BA%8EAlpine Linux构建,旨在简化自签名SSL证书的创建过程,避免每次需要自签名证书时都需手动搜索操作步骤。通过简单的Docker命令即可生成完整的证书链,包括CA证书、服务器证书及相关密钥文件。
可通过以下环境变量自定义证书生成参数:
| 环境变量 | 描述 | 默认值 | 备注 |
|---|---|---|---|
CA_KEY | CA密钥文件名称 | ca-key.pem | [1] |
CA_CERT | CA证书文件名称 | ca.pem | [1] |
CA_SUBJECT | CA主题 | test-ca | - |
CA_EXPIRE | CA证书有效期(天) | 60 | - |
SSL_CONFIG | OpenSSL配置文件名称 | openssl.cnf | [1] |
SSL_KEY | SSL密钥文件名称 | key.pem | - |
SSL_CSR | SSL证书签名请求文件名称 | key.csr | - |
SSL_CERT | SSL证书文件名称 | cert.pem | - |
SSL_SIZE | SSL证书密钥长度(位) | 2048 | - |
SSL_EXPIRE | SSL证书有效期(天) | 60 | - |
SSL_SUBJECT | SSL证书主题 | example.com | - |
SSL_DNS | 逗号分隔的DNS备选名称列表 | 无 | [2] |
SSL_IP | 逗号分隔的IP备选名称列表 | 无 | [2] |
[1] 若文件已存在则会重复使用。
[2] 若设置了SSL_DNS或SSL_IP,SSL_SUBJECT会自动添加到备选主机名列表中。
通过以下命令生成默认配置的证书,证书文件将输出到/tmp/certs目录:
bashdocker run -v /tmp/certs:/certs stakater/ssl-certs-generator:1.0
生成的文件包括:ca-key.pem、ca.pem、ca.srl、cert.pem、key.csr、key.pem、openssl.cnf。
验证证书有效性:
bashopenssl verify -CAfile /tmp/certs/ca.pem /tmp/certs/cert.pem
生成证书
指定证书主题为test.example.com:
bashdocker run -v /tmp/certs:/certs \ -e SSL_SUBJECT=test.example.com \ stakater/ssl-certs-generator:1.0
配置NGINX
在/etc/nginx/sites-enabled/default中启用SSL:
nginxserver { listen 443; server_name test.example.com; root html; index index.html index.htm; ssl on; ssl_certificate /tmp/certs/cert.pem; ssl_certificate_key /tmp/certs/key.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location / { try_files $uri $uri/ =404; } }
测试配置
bash# 重启NGINX service nginx restart # 添加本地域名解析 echo '127.0.2.1 test.example.com' >> /etc/hosts # 测试HTTPS连接 curl --cacert /tmp/certs/ca.pem https://test.example.com
创建证书卷容器
bashdocker run \ --name certs \ -e SSL_SUBJECT=test.example.com \ stakater/ssl-certs-generator:1.0
运行Docker Registry
使用卷容器挂载证书:
bashdocker run -d \ --name registry \ --volumes-from certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert.pem \ -e REGISTRY_HTTP_TLS_KEY=/certs/key.pem \ -p 5000:5000 \ registry:2
验证Registry
bash# 添加本地域名解析 echo "127.0.2.1 test.example.com" >> /etc/hosts # 标记并推送镜像 docker tag paulczar/omgwtfssl test.example.com:5000/omgwtfbbq docker push test.example.com:5000/omgwtfbbq
/certs目录,用于输出证书文件-e参数设置环境变量自定义证书参数生成包含DNS和IP备选名称的证书:
bashdocker run -v /tmp/certs:/certs \ -e SSL_SUBJECT=test.example.com \ -e SSL_DNS="test.example.com,[***]" \ -e SSL_IP="192.168.1.100,10.0.0.1" \ -e SSL_EXPIRE=365 \ stakater/ssl-certs-generator:1.0




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务