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)
有什么问题吗?
我已将我的 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)
有什么问题吗?