我正在尝试在Nginx ( laravel forge )上安装一个中间证书。现在证书已正确安装,只是缺少的中间证书。
我已经看到,我需要将当前证书与中间证书连接起来。添加中间证书的最佳/最安全方法是什么?
另外,如果中间层安装失败,我可以回滚到以前的证书,并重新启动nginx吗?(网站是实时的,所以我不能有太长的停机时间)
发布于 2014-09-10 23:51:52
Nginx希望所有的server部分证书都在一个你用ssl_certificate引用的文件中。只需将所有供应商的中间证书和您的域证书放在一个文件中。它看起来就像这样。
-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----为了确保一切正常并避免停机,我建议你在本地安装Nginx,在/etc/hosts中添加127.0.0.1 yourdomain.com,然后尝试从主要浏览器打开它。当您验证所有内容都是正确的时,您可以将其复制到生产服务器。
完成后,最好使用一些SSL检查工具进行验证(例如this one)。由于预安装的CA证书可能因浏览器和平台而异,因此您很容易忽略从一个操作系统或一组有限的浏览器进行的错误配置检查。
编辑
正如@Martin指出的,证书在文件中的顺序很重要。适用于TLS1.1状态的RFC 4346:
这是X.509v3证书的序列(链)。发件人的证书必须放在列表的第一位。下面的每个证书都必须直接证明它前面的一个证书。
因此,顺序是:
发布于 2022-02-03 03:19:49
Letsencrypt:fullchain.pem
我也有同样的麻烦。我使用的是Letsencrypt,在我的Nginx配置中,我不需要使用这个:
ssl_certificate /etc/letsencrypt/live/domain.tld/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;但请使用以下命令:
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;https://stackoverflow.com/questions/25750890
复制相似问题