
sebastienheyd/self-signed-proxy-companion警告!自签名证书仅应在本地项目中使用!
self-signed-certificate-nginx-proxy-companion 是 nginx-proxy 的轻量级辅助容器。它允许自动创建自签名证书。
如果需要为生产环境设置 Let's Encrypt 证书,请参见:docker-letsencrypt-nginx-proxy-companion。
适用于本地开发和测试环境,需要快速配置HTTPS但无需受信任的第三方证书的场景。请勿在生产环境中使用。
与原始 nginx-proxy 容器配合使用时,必须声明两个卷:
/var/run/docker.sock(只读):用于访问Docker套接字/etc/nginx/certs(可写):用于创建自签名证书bash$ docker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ -v /path/to/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ jwilder/nginx-proxy
bash$ docker run -d \ --name proxy-companion \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /path/to/certs:/etc/nginx/certs:rw \ sebastienheyd/self-signed-proxy-companion
SELF_SIGNED_HOST:bash$ docker run -d \ --name example-app \ -e "VIRTUAL_HOST=example.com.localhost,[***]" \ -e "SELF_SIGNED_HOST=example.com.localhost" \ tutum/apache-php
注意:在此示例中,SELF_SIGNED_HOST 的值 example.com.localhost 将覆盖 *.example.com.localhost,无需添加所有完全限定域名(FQDN)。参见 通配符证书 文档。
首先启动带有两个卷声明的 nginx 和辅助容器:
ymlversion: '2' services: proxy: container_name: proxy restart: always image: jwilder/nginx-proxy ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./vhost.d:/etc/nginx/vhost.d - ./certs:/etc/nginx/certs networks: - proxy proxy-companion: container_name: proxy-companion restart: always image: sebastienheyd/self-signed-proxy-companion volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./certs:/etc/nginx/certs networks: proxy: external: true
然后启动任何需要代理的容器,并添加环境变量 SELF_SIGNED_HOST:
ymlversion: '2' services: app: container_name: example-app image: tutum/apache-php:latest environment: VIRTUAL_HOST: "example.com.localhost,[***]" SELF_SIGNED_HOST: "example.com.localhost" networks: - proxy networks: proxy: external: true
注意:在此示例中,SELF_SIGNED_HOST 的值 example.com.localhost 将覆盖 *.example.com.localhost,无需添加所有完全限定域名(FQDN)。参见 通配符证书 文档。
| 变量 | 默认值 | 描述 |
|---|---|---|
| NGINX_PROXY_CONTAINER | proxy | nginx-proxy 容器名称 |
| EXPIRATION | 3650 | 证书有效期(天) |
| DOCKER_HOST | unix:///var/run/docker.sock | 当前容器中 Docker 套接字的路径 |
这将避免浏览器显示“您的连接不是私密连接”警告。
首次启动辅助容器时,会生成 CA 证书。在 certs 文件夹中可找到 ca.crt,即 CA 证书。
以下是两种常见浏览器的 CA 证书导入方法:
chrome://settings/certificatesca.crtabout:config#privacyca.crt

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务