让 EV SSL 证书在 Nginx 上工作的问题
Issues getting EV SSL certificate to work on Nginx
我已经让 SSL 在 Apache 服务器和客户端的 Nginx 服务器上工作。但是,我在安装 EV SSL 证书时遇到问题。这也是在 URL 中具有特殊字符的服务器上:weöm.com
.
weöm.com
在浏览器中显示为xn--wem-tna.com
,这很好。当我检查从 COMODO 发给我的 .ca-bundle
时,我看到我的域名呈现为 we\xC3\xB6m.com
,这让我觉得我必须生成我的 .csr
和 .key
同理
这是我一直在做的(运行 终端中的这个命令):
openssl req -new -newkey rsa:2048 -nodes -out weom.csr -keyout weom.key -subj "/serialNumber=000000000/businessCategory=Private Organization/C=US/postalCode=00000/ST=California/L=Cupertino/street=1 Loop Way/O=Apple Inc/OU=COMODO EV SSL/CN=we\xC3\xB6m.com"
(在我的示例中,我用假数据替换了序列号和其他内容)
代码吐出 .csr
和 .key
与我编译的 .crt
具有完全相同的数据,我不明白为什么我仍然得到这个 SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
错误。
我已经 运行 研究这个问题大约一个星期了,有人知道我做错了什么吗?
编辑:证明更多信息...
这是我如何创建我的主人.crt
:
cat xn--wem-tna.com.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSAExtendedValidationSecureServerCA.crt >> cert_chain.crt
这是我的 sites-available
文件夹中的 default
文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name xn--wem-tna.com;
return 301 https://$host$request_uri;
}
server {
# SSL configuration
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate cert_chain.crt;
ssl_certificate_key weom.key;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name xn--wem-tna.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
错误原因是你的KEY和CRT不一样
您可以通过检查它们的 MD5 哈希来验证这一点:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
此外,我会更改捆绑 CRT (cert_chain.crt) 中的顺序,目前您是这样的:
xn--wem-tna.com.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSAExtendedValidationSecureServerCA.crt
应该是:
cat xn--wem-tna.com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > cert_chain.crt
这是官方的Comodos Certificate Installation: NGINX
让我担心的是你开头的评论:
如果您在证书颁发后更改了密钥,则需要使它失效并使用新的 KEY 和新的 CSR 申请新的 CRT。
weöm.com is displayed as xn--wem-tna.com in browsers, which is fine. When I inspected my .ca-bundle that was emailed to me from COMODO, I saw my domain name rendered as we\xC3\xB6m.com, which made me think I have to generate my .csr and .key the same way.
对了,忘记更新了
我获得了退款并选择了 CertSimple。周五晚上通过电子邮件向他们发送了问题,周六 morning/afternoon 完成了获取 EV 证书的整个过程,并在下午 6 点之前将其放在我的服务器上(那只是因为我 运行 出差了)。
我已经让 SSL 在 Apache 服务器和客户端的 Nginx 服务器上工作。但是,我在安装 EV SSL 证书时遇到问题。这也是在 URL 中具有特殊字符的服务器上:weöm.com
.
weöm.com
在浏览器中显示为xn--wem-tna.com
,这很好。当我检查从 COMODO 发给我的 .ca-bundle
时,我看到我的域名呈现为 we\xC3\xB6m.com
,这让我觉得我必须生成我的 .csr
和 .key
同理
这是我一直在做的(运行 终端中的这个命令):
openssl req -new -newkey rsa:2048 -nodes -out weom.csr -keyout weom.key -subj "/serialNumber=000000000/businessCategory=Private Organization/C=US/postalCode=00000/ST=California/L=Cupertino/street=1 Loop Way/O=Apple Inc/OU=COMODO EV SSL/CN=we\xC3\xB6m.com"
(在我的示例中,我用假数据替换了序列号和其他内容)
代码吐出 .csr
和 .key
与我编译的 .crt
具有完全相同的数据,我不明白为什么我仍然得到这个 SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
错误。
我已经 运行 研究这个问题大约一个星期了,有人知道我做错了什么吗?
编辑:证明更多信息...
这是我如何创建我的主人.crt
:
cat xn--wem-tna.com.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSAExtendedValidationSecureServerCA.crt >> cert_chain.crt
这是我的 sites-available
文件夹中的 default
文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name xn--wem-tna.com;
return 301 https://$host$request_uri;
}
server {
# SSL configuration
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate cert_chain.crt;
ssl_certificate_key weom.key;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name xn--wem-tna.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
错误原因是你的KEY和CRT不一样
您可以通过检查它们的 MD5 哈希来验证这一点:
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5
此外,我会更改捆绑 CRT (cert_chain.crt) 中的顺序,目前您是这样的:
xn--wem-tna.com.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSAExtendedValidationSecureServerCA.crt
应该是:
cat xn--wem-tna.com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > cert_chain.crt
这是官方的Comodos Certificate Installation: NGINX
让我担心的是你开头的评论:
如果您在证书颁发后更改了密钥,则需要使它失效并使用新的 KEY 和新的 CSR 申请新的 CRT。
weöm.com is displayed as xn--wem-tna.com in browsers, which is fine. When I inspected my .ca-bundle that was emailed to me from COMODO, I saw my domain name rendered as we\xC3\xB6m.com, which made me think I have to generate my .csr and .key the same way.
对了,忘记更新了
我获得了退款并选择了 CertSimple。周五晚上通过电子邮件向他们发送了问题,周六 morning/afternoon 完成了获取 EV 证书的整个过程,并在下午 6 点之前将其放在我的服务器上(那只是因为我 运行 出差了)。