最近搬到了 CloudFlare,因为我想要一个 DNS 服务,为 certbot 提供 DNS 凭据以生成通配符 SSL 证书。
但是,我正在努力让基本的 SSL Nginx 设置运行。
背景:
- DNS 解析工作正常。 (当我只有一个 Nginx HTTP 服务器 block 时,该网站通过 HTTP 加载不安全)
- 可以通过具有 HTTPS 地址的直接 IP(而不是通过 CloudFlare IP)连接到网站。它发出无效的证书警告,但仍然连接。
openssl s_client -connect property-connect.co.uk:443 -servername property-connect.co.uk
似乎表明 SSL 证书没问题
步骤:
- 运行
certbot --nginx
指定包括两个域 (www.property-connect.co.uk property-connect.co.uk) sudo nginx -t
成功sudo nginx -s reload
nginx.conf
events {
}
http {
server {
server_name www.property-connect.co.uk property-connect.co.uk;
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
location / {
proxy_pass http://localhost:700;
}
ssl_certificate /etc/letsencrypt/live/property-connect.co.uk-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/property-connect.co.uk-0001/privkey.pem; # managed by Certbot
}
}
关于这个基本配置我缺少什么有什么想法吗?
最佳答案
此域的当前证书由 Cloudflare 本身颁发和管理,而不是由您的 CertBot/Nginx:
$ openssl s_client -connect property-connect.co.uk:443 -servername property-connect.co.uk </dev/null 2>&1 | grep ^issuer
issuer=C = US, ST = CA, L = San Francisco, O = "CloudFlare, Inc.", CN = CloudFlare Inc ECC CA-2
我猜这是因为您已通过 Cloudflare 将流量代理到您的主机
您应该将您的域切换到仅 DNS
,然后您将能够直接连接到您的 Nginx,而无需 Cloudflare 反向代理。
关于ssl - Nginx certbot SSL 不适用于 Cloudflare,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617991/