nginx ssl 通配符证书问题

nginx ssl 通配符证书问题

我们目前有一个 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  

相关内容