我正在尝试使用 Nginx 设置 SSL,但遇到了一些问题。我收到了所有必需的文件,并创建了如下所示的包这里,并将其添加到我的网站配置中,如下所示:
server {
listen 443;
server_name <domain> www.<domain>;
ssl_certificate /srv/ssl/<domain>.bundle.cer;
ssl_certificate_key /srv/ssl/<domain>.key;
location / {
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 80;
server_name <domain> www.<domain>;
location / {
rewrite ^ https://$server_name$request_uri permanent;
}
}
尝试连接时,我收到 SSL 连接错误。但是,运行后diff <(openssl rsa -in /srv/ssl/<domain>.key -modulus -noout) <(openssl x509 -in /srv/ssl/<domain>.bundle.cer -modulus -noout)
没有任何结果。
Nginx 错误日志显示以下内容:
SSL_CTX_use_PrivateKey_file("/srv/ssl/<domain>.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
该包是使用以下方式创建的cat
:
cat <domain>.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > <domain>.bundle.cer
Nginx 用户有权限读取该文件。
有任何想法吗?
答案1
您忘记在 nginx 中将端口 443 标记为已启用 ssl。-listen 443 ssl;
有点。