我们目前有一个 nginx 服务器作为 4-5 个 Apache 服务器的后端代理运行。我的问题是,安装 ssl 证书后,在测试 ssl 连接时出现以下错误:openssl s_client -connect xxx.xxxxxxxxx.xxx:443 | more
Verify return code: 21 (unable to verify the first certificate)
SSL 是通过 RapidSSL 购买的,nginx 的 SSL 代理配置如下:
server {
listen 443 ssl;
server_name _;
access_log /var/log/nginx/ssl-access.log;
error_log /var/log/nginx/ssl-error.log;
ssl on;
ssl_certificate ssl/wildcard-xxxxxxx.xx.xx.crt;
ssl_certificate_key ssl/wildcard-xxxxxxx.xx.xx.key;
keepalive_timeout 60;
location / {
proxy_pass https://backend;
}
}
我可以验证后端服务器是否返回 SSL 连接正常
Verify return code: 0 (ok)
如果有人能通知我或者指出问题的话我将非常感激。
谢谢,大卫
答案1
RapidSSL 不直接通过公认的证书颁发机构签署证书,而是使用中间证书签署通配符证书。浏览器/OpenSSL 的信任链中没有中间证书,因此无法验证 SSL 证书。
您必须在 nginx 中安装中级证书。获取中级证书(它应该包含在您的购买/客户服务说明中)并将其附加到您的证书中。
cat /path/to/intermediate.pem >> ssl/wildcard-xxxxxxx.xx.xx.crt