Nginx SSL证书SSL失败:错误:0B080074:x509(Google Cloud)

Wal*_*anG 4 ssl reverse-proxy nginx google-compute-engine google-cloud-platform

我的服务器托管在Bluehost(Apache)中,证书工作正常.现在,我正在使用Google Cloud在NodeJS上的多个页面上使用proxy_pass.我正在尝试配置SSL,但我遇到了问题.我正在寻找类似的问题,但它仍然显示相同的错误.我在此链接后创建了密钥文件

/var/log/nginx/error.log:

2015/07/08 10:47:20 [emerg] 2950#0:SL_CTX_use_PrivateKey_file("/ etc/nginx/ssl/domain_com/domain_com.key")失败(SSL:错误:0B080074:x509证书例程:X509_check_private_key:键值不匹配)

当我戴上控制台时:

openssl rsa -noout -modulus -in domain_com.key告诉我这个:

Modulus=D484DD1......512 characters in total......5A8F3DEF999005F
Run Code Online (Sandbox Code Playgroud)

openssl x509 -noout -modulus -in ssl-bundle.crt:

Modulus=B1E3B0A.......512 characters in total......AFC79424BE139
Run Code Online (Sandbox Code Playgroud)

这是我的Nginx设置:

server {
    listen 443;
    server_name www.domain.com;

    ssl_certificate /etc/nginx/ssl/domain_com/ssl-bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/domain_com/domain_com.key;

    ssl on;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/domain_com.access.log;

    location / {
       proxy_set_header                         Host $host;
       proxy_set_header X-Real-IP               $remote_addr;
       proxy_set_header X-Forwarded-For         $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto       $scheme;
       proxy_pass                               http://localhost:8086;
       proxy_read_timeout                       90;
       proxy_redirect                           http://localhost:8086 https://www.domain.com;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Ana*_*oly 6

如果连接顺序错误,可能会出现此问题.你试过:

cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt  COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
Run Code Online (Sandbox Code Playgroud)

这看起来是正确的,但连接通常需要从根CA中删除额外的下载,因此Nginx创建者:

浏览器通常存储他们收到的中间证书,并由受信任的权威机构签名,因此主动使用的浏览器可能已经拥有所需的中间证书,并且可能不会抱怨没有链接束发送的证书.

官方文件明确指出:

如果服务器证书和软件包的连接顺序错误,则nginx将无法启动并显示错误消息:

SSL_CTX_use_PrivateKey_file(" ... /www.example.com.key") failed
   (SSL: error:0B080074:x509 certificate routines:
    X509_check_private_key:key values mismatch)
Run Code Online (Sandbox Code Playgroud)

因为nginx尝试将私钥与bundle的第一个证书而不是服务器证书一起使用.

所以要解决这个问题请尝试:

  1. www_example_com.crt附加到ssl_certificate Nginx配置密钥

  2. 官方网页下载最新的Comodo CA证书SHA2,并再次尝试连接捆绑包