【发布时间】:2014-03-19 04:51:32
【问题描述】:
我必须为网站添加 ssl (https),我得到了一个 SSL.CSR 和一个 SSL.KEY 文件。我对它们进行了“dos2unix”处理(因为它们有尾随 ^M)并将它们复制到服务器(CSR -> mywebsite.crt,KEY -> mywebsite.key)。我对 nginx.conf 做了如下修改:
@@ -60,8 +60,13 @@
}
server {
- listen 80;
+ listen 443;
server_name ...;
+ ssl on;
+ ssl_certificate mywebsite.crt;
+ ssl_certificate_key mywebsite.key;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 10m;
# Set the max size for file uploads to 500Mb
client_max_body_size 500M;
重启nginx时发生错误:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
我认为这是因为 mywebsite.crt 文件的第一行包含“REQUEST”,所以我从第一行和最后一行中删除了“REQUEST”,然后再次重新启动 nginx,并遇到另一个错误:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=algorithm, Type=X509_ALGOR error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=signature, Type=X509_CINF error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=cert_info, Type=X509 error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib)
有什么想法吗?
【问题讨论】:
-
您可以从StartCom 获得免费的 1 类服务器证书。提交 CSR,并取回 CRT(签名证书)。将 CRT 转换为 PEM,并将 StartCom 的 Class 1 Server Intermediate 证书与您刚刚转换的 PEM 编码证书连接到文件中。正如马克所说,扔掉那把钥匙。
-
顺便说一下,
openssl req -in mycsr.csr -noout -text打印 CSR。您的 CSR 格式不正确 - 因为它有一个通用名称 (CN),所以需要将相同的主机名列为主题替代名称 (SAN)。 CN 已弃用,您应该将 *.example.net 列为 SAN(并省略 CN)。请参阅 CA/浏览器论坛中的公共信任证书的颁发和管理的基线要求。 -
@noloader 感谢您的回答!实际上我使用了错误的文件,我得到了一个 nginx 接受的 CertB64.cer 文件。现在我还有两个问题:1)Firefox 抱怨证书没有“颁发者链”2)由于 Chrome 和 IE 抱怨证书(为 *.aaa.mywebsite.com 发布)不适用于asset.bbb.aaa.mywebsite.com,只有手动打开图片 URL 并确认安全异常才能打开图片。我想我需要为 ..aaa.mywebsite.com 颁发另一个证书,其中包含颁发者链?
-
我在 macOS 上遇到了这个问题。我错误地导出了链中每个证书的
Public Key,而不是证书文件。一旦我导出了 Cert 文件(作为 PEM 文件)并将它们链接在一起,一切正常。
标签: ssl nginx https openssl ssl-certificate