AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1080750
Accepted
Jaco
Jaco
Asked: 2021-10-17 07:32:38 +0800 CST2021-10-17 07:32:38 +0800 CST 2021-10-17 07:32:38 +0800 CST

在nginx、pem、bundle、crt上安装godaddy ssl证书

  • 772

通过可用的说明和论坛帖子,有点不清楚如何处理从 Godaddy 购买 SSL 证书时从他们那里获得的三个文件。Godaddy并没有很直接地解释它。事后看来,现在当知道如何做到这一点时,人们可能会认为他们不在购买说明中详细说明这一点是不明智的;因为让它工作并非易事。

在 GoDaddy 购买标准 SSL 证书 (Starfield SHA-2) 或 (Godaddy SHA-2) 时。您指明您拥有的服务器类型并下载一个 zip 包。在此过程中,您还下载了两个 txt 文件。

对于 Nginx,您指定服务器类型“其他”,并且您的 zip 文件包含 3 个文件 (1-3)。在此过程中,还创建了另外两个文件(4-5),分别保存:

  1. 3423l4kj23l4j.crt
  2. 3423l4kj23l4j.pem
  3. sf_bundle-g2-g1.crt
  4. 生成的私钥.txt
  5. 生成-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 中:

  1. 我创建了一个文件夹,/etc/nginx/ssl
  2. 我编辑/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文件
ssl nginx godaddy
  • 1 1 个回答
  • 3810 Views

1 个回答

  • Voted
  1. Best Answer
    Nikita Kipriyanov
    2021-10-17T08:08:36+08:002021-10-17T08:08:36+08:00

    这取决于捆绑包中的内容。我确定它包含到受信任 CA 的证书路径,问题是:它是否还包括终端服务器证书(它是 Let's Encrypt 的“完整链”)或不(“链”)?另外,哪个文件包含私钥?

    您可以通过简单地使用文本查看器(记事本等)查看并比较内容来手动检查,因为 PEM 格式的包只不过是 Base64 形式的所有证书,从服务器开始连接,然后是其颁发者 CA,等等。

    -----BEGIN CERTIFICATE-----您还可以将任何以开头的证书-----END CERTIFICATE-----(包括这两个特殊行)剪切成专用文件并使用openssl x509 -in file.pem -noout -text. 这样您就可以确切地知道捆绑包中有哪些证书。

    如果 PEM 格式的文件包含类似的内容-----BEGIN PRIVATE KEY----,请勿与任何人共享,请保密!

    所有仅包含证书且仅包含-----BEGIN CERTIFICATE-----在其中的文件都是公开的。您可以安全地向任何人展示它们(事实上,因为服务器在 SSL 会话启动步骤中将这些证书发送给客户端)。


    如果您的捆绑包已经包含一个完整的链(即以终端服务器证书开头),那么所有工作都已为您完成并跳过以下步骤。

    但是,如果它不包含完整的链,则您必须自己将其连接起来(看来这是您的情况):

    cat server.crt bundle.pem > fullchain.pem
    

    现在,只需将其传递给 Nginx:

    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
    

    有关详细信息,请参阅Nginx 手册。

    • 3

相关问题

  • 如何使用 Tomcat 5.5 更新 SSL 证书

  • 为 IIS6 自行生成 SSL 证书?

  • plesk 上的域和子域 ssl 访问

  • 如何设置 SSL 邮件服务器?

  • 如何通过 SVN 命令行接受 SSL 证书?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve