ssl - MyDomain.com 仅提供正向 SSL 证书的可复制文本 : one for cert and one for key. 如何在我的 nginx Web 服务器上安装它?

标签 ssl nginx openssl ssl-certificate ubuntu-18.04

我正在尝试使用 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/

相关文章:

android - Java SSLException : hostname in certificate didn't match. Veryfing 证书错误?

ruby - 无需证书验证即可同时支持异步请求和 SSL 支持的 http 客户端

nginx - 我们可以使用 HAproxy 负载均衡器和 nginx 作为服务器吗?

对 Coindesk 的 Python API 调用返回 403 或 405。如何排除故障?

Nginx "invalid number of arguments in "try_files“指令...”用于PHP安全

node.js - 仅使用 socket-io 和 web 客户端 (socket io js) 进行安全交换

ruby-on-rails - Foursquare 和 Heroku : certificate verify failed

c - 具体如何使用OpenSSL?

objective-c - 使用未解析的标识符 'PKCS7_type_is_signed'

macos - OSX 上的 Lib-OpenSSL 依赖问题 Laravel 和 Composer