ssl - Nginx certbot SSL 不适用于 Cloudflare

标签 ssl nginx cloudflare certbot

最近搬到了 CloudFlare,因为我想要一个 DNS 服务,为 certbot 提供 DNS 凭据以生成通配符 SSL 证书。

但是,我正在努力让基本的 SSL Nginx 设置运行。

背景:

  1. DNS 解析工作正常。 (当我只有一个 Nginx HTTP 服务器 block 时,该网站通过 HTTP 加载不安全)
  2. 可以通过具有 HTTPS 地址的直接 IP(而不是通过 CloudFlare IP)连接到网站。它发出无效的证书警告,但仍然连接。
  3. openssl s_client -connect property-connect.co.uk:443 -servername property-connect.co.uk 似乎表明 SSL 证书没问题

步骤:

  1. 运行 certbot --nginx 指定包括两个域 (www.property-connect.co.uk property-connect.co.uk)
  2. sudo nginx -t 成功
  3. 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 将流量代理到您的主机 enter image description here

您应该将您的域切换到仅 DNS,然后您将能够直接连接到您的 Nginx,而无需 Cloudflare 反向代理。

关于ssl - Nginx certbot SSL 不适用于 Cloudflare,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617991/

相关文章:

security - 简单的社区站点需要 SSL 证书吗?

ssl - 如何使用 SSL 配置 nginx?

apache - 在 Azure 上托管的 Red Hat 6 中安装通配符 SSL 证书

mongodb - 无法从 Spark 应用程序连接到启用 SSL 的 mongo 集群

url-rewriting - nginx 子域重写

php - Cloudflare 不会通过 CURL 请求缓存页面

wordpress - Cloudflare 阻止来自 Wordpress 部署的混合内容

python - flask-socketio wss中的握手响应为空

PHP 和 Nginx,突然在 SSL 上非常慢,但在 HTTP 上完美

subdomain - 设置一个无 cookie 的子域