ssl - 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 证书?
解决方案
如果有人看到这个并感到好奇,我必须联系 MyDomain.com 支持并索要证书包。他们把它交给了我(.crtc 包以及证书和中间证书的单个文件),现在它在我的 nginx 服务器上运行良好。如果没有这些附加文件,它就无法工作。
推荐阅读
- c - Raspberry PI 3 上 C++ 中 BR300 或更低的串行端口速度变化问题
- android - 在幻灯片上滑动不会更新 iOS 设备上的分页活动状态
- python - 在组中的每一行上随机
- nlp - 斯坦福 POS 标记器和分类意图和回复可能出现错误
- leaflet - 如何添加多组标记?
- php - 如何在 drupal 管理面板中检查我的 Memcache 版本?
- reactjs - 如何从反应组件的原型中分离模拟功能,以免影响其他测试?
- python - 如何使用 Python 和 Glade 在 GTK3 中刷新 matplotlib 图表
- unity3d - 从哪里开始创建 2d 水?
- php - Laravel yajra/datatables & yajra/datatables 按钮