我正在尝试使用 nginx 网络服务器在站点上设置 SSL 证书。过去,我从 Let's Encrypt/Certbot 生成 SSL 证书没有任何问题。这次,我从 MyDomain.com 购买了一个 .com 域和一个 Positive SSL 证书。 MyDomain.com 不提供证书的 .zip 文件或 ca-bundle 文件(即,似乎没有中间证书或根证书)。相反,它给了我两行纯文本代码来手动复制:一个用于证书,一个用于 key 。
证书行包含-----BEGIN CERTIFICATE----- 和-----END CERTIFICATE-----
key 行包含-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----
我将每一行粘贴到它自己的文本编辑器文件中(在 Ubuntu 18.0 上使用 Atom)并分别保存为 .crt 和 .key。 (MyDomain.com 支持人员告诉我证书应该是 .crt,但谁知道呢?)
然后我将这些文件路径添加到我的 nginx 站点配置文件中,如下所示:
ssl_certificate /etc/ssl/certs/mysite.com.crt;
ssl_certificate_key /etc/ssl/private/mysite.com.key;
但是,nginx 在重启时失败,当我检查配置文件时,我得到以下信息:
$ sudo nginx -t
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/ssl/certs/mysite.com.crt") failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: configuration file /etc/nginx/nginx.conf test failed
我尝试过的一些事情:
将证书另存为 .pem = 同样的错误。
在证书的开头和结尾手动添加单词 TRUSTED = 同样的错误。
尝试根据编码转换文件:
$ sudo openssl x509 -in /etc/ssl/certs/mysite.com.crt -out /etc/ssl/certs/mysite.com.pem -outform PEM
unable to load certificate
140561005191616:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
$ sudo openssl x509 -in /etc/ssl/certs/mysite.com.crt -inform der -outform pem -out /etc/ssl/certs/mysite.com.pem
unable to load certificate
139831375835584:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1130:
139831375835584:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:290:Type=X509
$ sudo openssl x509 -inform DER -in /etc/ssl/certs/mysite.com.crt -out /etc/ssl/certs/mysite.com.pem -text
unable to load certificate
139993835831744:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1130:
139993835831744:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:290:Type=X509
我不确定从这里开始做什么。有没有人仅使用 .crt 文件和 .key 文件在 nginx 上成功安装了 SSL 证书?
最佳答案
如果有人看到这个并感到好奇,我必须联系 MyDomain.com 支持并索取证书包。他们把它交给了我(.crtc 包以及证书和中间证书的单个文件),现在它在我的 nginx 服务器上工作得很好。没有这些额外的文件,它就无法工作。
关于ssl - MyDomain.com 仅提供正向 SSL 证书的可复制文本 : one for cert and one for key. 如何在我的 nginx Web 服务器上安装它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58359085/