我正在尝试制作一个安全的 docker 代理作为概念证明。这似乎接近工作(端口 80 工作和“它工作!”页面出现在 b.example.com)。但是,控制台在生成密钥时显示错误。
码头工人-compose.yml:
version: '2'
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- ./certs:/etc/nginx/certs:ro
- /etc/nginx/vhost.d
- /usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
nginx-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- ./certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes_from:
- nginx-proxy:rw
environment:
- LETSENCRYPT_TEST=true
site-b:
image: httpd
networks:
- reverse-proxy
- back
environment:
- VIRTUAL_PORT=1234
- VIRTUAL_HOST=b.example.com
- LETSENCRYPT_HOST=b.example.com
错误:
nginx-letsencrypt_1 | 2018-04-27 11:41:40,244:ERROR:simp_le:1446: CA 将一些授权标记为无效,这可能意味着它无法访问 http://example.com/.well-known/acme-challenge/ X。您是否在 -d example.com:path 或 --default_root 中设置了正确的路径?您的所有域都可以从 Internet 访问吗?请检查您的域的 DNS 条目、主机的网络/防火墙设置和网络服务器配置。如果域的 DNS 条目同时设置了 A 和 AAAA 字段,则某些 CA(例如 Let's Encrypt)将通过 IPv6 执行质询验证。如果您的 DNS 提供商未正确响应 CAA 记录请求,Let's Encrypt 不会为您的域颁发证书(请参阅 https://letsencrypt.org/docs/caa/)。授权失败:https://acme-v01.api.letsencrypt。