gpt4 book ai didi

node.js - SSL 证书短暂出现在网站上,然后消失

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:12 26 4
gpt4 key购买 nike

我正在我的网站上实现 SSL,但 Chrome 上的绿色条闪烁了片刻然后消失了。我的证书由 Comodo 签署。 AFAIK 我的 nginx 配置是正确的,但我似乎无法坚持使用 https。我的 8080 重定向有效,我的证书有 chmod 600,并且位于指定的目录中。

有什么想法吗?

server {
listen 8080;
server_name *.example.com;
return 301 https://www.example.com;
}

server {
listen 443 ssl;
server_name *.example.com;
ssl_certificate /home/ubuntu/example.com.ssl/example.com.crt;
ssl_certificate_key /home/ubuntu/example.com.ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://localhost:3333;
}
}

编辑:我的证书由受信任的机构签署。

最佳答案

正如评论中所讨论的,最好通过以下工具运行您的站点来测试 https 配置设置:https://www.ssllabs.com/ssltest/

您提到缺少一些 CA 文件,所以我猜您的证书只是您站点的证书,而不是返回根证书的完整链?

这很容易通过查看您的证书文件来验证:

ssl_certificate     /home/ubuntu/example.com.ssl/example.com.crt;

如果此文件包含一个证书,那么(只有一个 BEGIN CERTIFICATE 行)就是问题所在。它应该至少包含两个证书(对于三个证书链),如果您的 CA 使用更长的证书链,则可能更多。根证书不需要(也不应该!)在这个文件中,因为浏览器已经知道了。

因此获取中间证书(它们应该与您的证书一起提供 - 但也可用 here for Comodo )然后合并到一个文件中:

cat example.com.crt intermediate.crt > example.com_with_chain.crt

或者如果您有两个中间件,则如下所示(其中 intermediate1.crt os 是颁发您的证书的证书,它是由 intermediate2.crt 颁发的,它是由您的浏览器信任的根证书颁发的):

cat example.com.crt intermediate1.crt intermediate2.crt > example.com_with_chain.crt

请注意顺序很重要。然后更新您的 ssl_certificate 配置以指向这些组合的 crt,然后重新启动 Nginx 并重复 ssltest 测试。

关于node.js - SSL 证书短暂出现在网站上,然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36851519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com