通过可用的说明和论坛帖子,有点不清楚如何处理从 Godaddy 购买 SSL 证书时从他们那里获得的三个文件。Godaddy并没有很直接地解释它。事后看来,现在当知道如何做到这一点时,人们可能会认为他们不在购买说明中详细说明这一点是不明智的;因为让它工作并非易事。
在 GoDaddy 购买标准 SSL 证书 (Starfield SHA-2) 或 (Godaddy SHA-2) 时。您指明您拥有的服务器类型并下载一个 zip 包。在此过程中,您还下载了两个 txt 文件。
对于 Nginx,您指定服务器类型“其他”,并且您的 zip 文件包含 3 个文件 (1-3)。在此过程中,还创建了另外两个文件(4-5),分别保存:
- 3423l4kj23l4j.crt
- 3423l4kj23l4j.pem
- sf_bundle-g2-g1.crt
- 生成的私钥.txt
- 生成-csr.txt
在记事本中打开时,上面的1和2是相同的
'-----BEGIN CERTIFICATE-----
MM123XXXXXX
XXXXXXXO8km
-----END CERTIFICATE-----'
sf_bundle-g2-g1.crt
上面不包含 1 或 2,而是三个单独的条目
'-----BEGIN CERTIFICATE-----
XXXX1
XXXX2
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
XXXX3
XXXX4
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
XXXX5
XXXX6
-----END CERTIFICATE-----'
generated-private-key.txt
是独特的
'-----BEGIN PRIVATE KEY-----
XXXX7
XXXX8
-----END PRIVATE KEY-----'
最后, generated-csr.txt
, 也是唯一的
'-----BEGIN CERTIFICATE REQUEST-----
XXXX9
XXXX0
-----END CERTIFICATE REQUEST-----'
在 Nginx 中:
- 我创建了一个文件夹,
/etc/nginx/ssl
- 我编辑
/etc/nginx/sites-enabled/default.conf
如下
;
server {
listen 80 default_server ;
listen [::]:80 default_server ;
我已将其更改为:
server {
listen 443 ssl ;
listen [::]:443 ssl ;
server_name example.com;
ssl_certificate /etc/nginx/ssl/ ?????????.crt;
ssl_certificate_key /etc/nginx/ssl/ ???????.key;
因为我有点不清楚什么是什么,以及 pem 和 bundle 是什么,我想问哪些解压缩的文件放在哪里?:
ssl_certificate
= crt、pem、bundle、gen_crt?ssl_certificate_key
= pem 还是私钥?
更新 我按照@nikita-kipriyanov 的建议做了,这行得通。
- 组合/连接方式:
3423l4kj23l4j.pem sf_bundle-g2-g1.crt > fullchain.pem
这将成为ssl_certificate
文件 - 将其重命名
generated-private-key.txt
为privkey.pem
文件,然后更改它的文件编码:sudo iconv -c -f UTF8 -t ASCII privkey.pem >> privkey.pem
这将成为ssl_certificate_key
文件