Cloudflare SSL 证书引发安全问题

Cloudflare SSL cert throws a Security Issue

我已将我的 nginx 配置为使用我从 cloudflare crypto 下载的证书和 private_key。

这是我的nginx.conf文件-

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name autocaptions.app *.autocaptions.app;

        location / {
                proxy_pass http://127.0.0.1:7887;
        }
        ssl on;
        ssl_certificate /home/ubuntu/sslcerts/autocaptions.pem;
        ssl_certificate_key /home/ubuntu/sslcerts/private-key.pem;
        # ssl_client_certificate /home/ubuntu/sslcerts/cloudflare.crt;
        # ssl_verify_client on;
}


# Redirect http to https
server {
        listen 80;
        listen [::]:80;
        return 301 https://$host$request_uri;
}

我不确定是什么问题。我已经添加了证书和 private_key.

当我尝试访问 https://autocaptions.app -

时,我在浏览器中看到以下错误

文本错误-

autocaptions.app has a security policy called HTTP Strict Transport Security (HSTS), which means that Firefox can only connect to it securely. You can’t add an exception to visit this site.

在 Cloudflare 配置中,我禁用了 HSTS,不确定为什么会出现此错误。

我已按照 digitalocean 教程配置 SSL。

Crypto 选项卡下检查您站点的 SSL 设置。将其更改为 'Full' 或 'Flexible' 如果它在 'Full (Strict)'.

您正在使用 "Cloudflare Origin CA" 签署的证书。此 CA 颁发的证书旨在安装在您的源服务器上,以便 Cloudflare CDN 和您的源服务器之间的通信可以受到证书的保护。

这些类型的证书不是面向最终用户(即浏览器)的系统。它们仅用于保护您的原始服务器和 Cloudflare 之间的通信。典型的最终用户不会在他们的浏览器中将 "Cloudflare Origin CA" 作为受信任的 CA,因此他们在连接到您的源服务器时会收到 TLS 错误 - 这就是您得到的结果。但典型的最终用户不应首先连接到原始服务器——他们应该连接到 Cloudflare 实例。只有 Cloudflare 本身应该连接到源服务器,他们会承认他们自己的 CA 是可信的。

TL;DR @SteffenUllrich 绝对正确,应该是公认的答案。

这是您当前的设置。 您正在使 DNS 记录蒙上灰色阴影,实质上是将您的原始服务器的 IP 地址暴露给全世界。 这里的第一个问题是,这类似于在Twitter/Facebook上发布您家的地址,说前门没有锁,所以请随时进来拿走您想要的东西!

                                              Cloudflare Origin CA Certificate
                                                         |
client <---------------------HTTPS-----------------> your origin (AWS)

这里的第二个问题是 CloudFlare Origin CA 证书不适用于客户端-服务器连接。它的目的是仅加密 Cloudflare edge 和您的来源之间的连接。您可以将其视为自签名证书。这就是您所看到的错误的原因。

一个非常简单的解决方案是将此原始证书替换为其他免费或付费的 SSL 证书,例如 Let's Encrypt/Certbot。如果您决定采用这种方式,则可以根据需要跳过下面的其余解释。

但是,如果您希望继续使用 Cloudflare Origin CA 证书,请继续阅读。

下一步是通过橙色云化 DNS 记录来代理您与 Cloudflare 的连接。客户端和 Cloudflare edge 之间的连接将使用 Cloudflare 的免费(共享)通用 SSL 证书加密。它会部分解决问题,但只有一半的客户端-服务器连接是加密的,因为您使用的是灵活模式。 Cloudflare edge 和您的来源之间的连接不会被加密。

                 Universal SSL Certificate
                            |
client <---HTTPS---> Cloudflare edge <----HTTP----> your origin (AWS)

最后一步是将 SSL 模式从灵活更改为完全或完全(严格)。现在您将获得端到端加密。

                 Universal SSL Certificate       Cloudflare Origin CA Certificate
                            |                           |
client <---HTTPS---> Cloudflare edge <----HTTPS----> your origin (AWS)

有什么问题吗?