首页 > 解决方案 > MyDomain.com 只为正 SSL 证书提供可复制文本:一份用于证书,一份用于密钥。如何在我的 nginx Web 服务器上安装它?

问题描述

我正在尝试使用 nginx Web 服务器在站点上设置 SSL 证书。过去,我从 Let's Encrypt/Certbot 生成 SSL 证书没有任何问题。这一次,我从 MyDomain.com 购买了一个 .com 域和一个 Positive SSL 证书。MyDomain.com 没有为证书提供 .zip 文件或 ca-bundle 文件(即,似乎没有中间证书或根证书)。相反,它给了我两行纯文本代码来手动复制:一行用于证书,另一行用于密钥。

证书行包含 -----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 证书?

标签: sslnginxopensslssl-certificateubuntu-18.04

解决方案


如果有人看到这个并感到好奇,我必须联系 MyDomain.com 支持并索要证书包。他们把它交给了我(.crtc 包以及证书和中间证书的单个文件),现在它在我的 nginx 服务器上运行良好。如果没有这些附加文件,它就无法工作。


推荐阅读