我在用着Nginx在Ubuntu 18.04和激光脉冲安装后,最近我更新了我的 SSL 证书,因此我可以看到一些名为 的文件。
SSL 证书相关文件的最后 2 个文件附带 .zip
private.key (same as old)
public.crt (renewed)
STAR_sellist_com.ca-bundle (renewed)
STAR_sellist_com.crt (renewed)
我之前的 nginx 配置
server {
listen 443 ssl;
server_name dev.sellist.com;
ssl on;
ssl_certificate /etc/ssl/nginx/public.crt;
ssl_certificate_key /etc/ssl/nginx/private.key;
在我的证书过期之前,这个方法有效。现在我看到了这个错误
AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
我知道有些中级认证没有在正确的地方设置,所以我该怎么做?请告诉我
答案1
STAR_sellist_com.ca-bundle
文件是一个链包。在 Nginx 中,您必须将链包和 .crt 文件转换为一个文件才能运行此命令。
cat STAR_sellist_com.ca-bundle STAR_sellist_com.crt > STAR_sellist_com.chained.crt
之后更改虚拟主机语法
ssl_certificate /etc/ssl/nginx/STAR_sellist_com.chained.crt; ssl_certificate_key /etc/ssl/nginx/private.key;
我希望它有帮助。
答案2
尝试改变线路
ssl_certificate /etc/ssl/nginx/public.crt;
到
ssl_certificate /etc/ssl/nginx/STAR_sellist_com.ca-bundle;
我们应该为 ssl_certificate 提供完整的链
答案3
在这种情况下nginx 配置相同,无需编辑
server {
listen 443 ssl;
server_name dev.sellist.com;
ssl on;
ssl_certificate /etc/ssl/nginx/public.crt;
ssl_certificate_key /etc/ssl/nginx/private.key;
SSL 证书相关文件,最后 2 个文件附带 .zip. 连接最后 2 个文件公共证书
private.key (same as old)
public.crt (renewed)
STAR_sellist_com.ca-bundle (renewed)
STAR_sellist_com.crt (renewed)
解决方案:- 为了使用cat
命令连接。
笔记:- 此连接顺序是必须的。
cat public.crt STAR_sellist_com.crt STAR_sellist_com.ca-bundle > public.crt