【问题标题】:How to install godaddy ssl certificate on aws elb?如何在aws elb上安装godaddy ssl证书?
【发布时间】:2012-10-10 22:45:34
【问题描述】:

我从 godaddy 购买了 SSL 证书。我创建了一个 keystore 文件,从中生成了一个 csr 文件,将其发送给 godaddy,并收到了这些文件:

  • mydomain.crt
  • gd_intermediate.crt
  • gd_bundle.crt

现在我正在尝试在 AWS 控制台中创建一个弹性负载均衡器。当被要求提供证书详细信息时,他们要求:

  • 私钥(pem 编码)
  • 公钥证书(pem 编码)
  • 证书链(pem 编码,可选)

如何将我拥有的文件转换为这些参数?

【问题讨论】:

  • reformy,您在这三个字段的过程结束时使用了哪些文件? host.pem、public.pem 和 gd_intermediate?我无法使用本教程配置这些键 =/

标签: amazon-web-services ssl https


【解决方案1】:

我最近不得不经历这个过程,但没有一个答案对我有用。以下是允许我将新 SSL 证书上传到 AWS 的步骤(以供后续在 ElasticBeanstalk 中使用)。

获取私钥

我必须为此过程使用两个命令:

openssl genrsa -des3 -out server.pass.key 2048
openssl rsa -in server.pass.key -out server.key

server.key 文件是您的私钥。

此外,您可以通过执行以下操作生成 CSR(证书签名请求):

openssl req -nodes -new -key server.key -out server.csr

这是我们将用来请求 GoDaddy 颁发我们的新证书的文件。

获取公钥

在 GoDaddy 中颁发证书后,下载它。这将为您提供两个必须通过以下方式捆绑为一个的文件:

cat yourdomain.crt gd_bundle-g2-g1.crt > combined.crt

combined.crt 将是您的公钥。

将服务器证书上传到 AWS

有了server.keycombined.crt 文件,您现在可以使用AWS CLI 将证书上传到AWS。您只需要使用以下命令:

aws iam upload-server-certificate --server-certificate-name your_certificate_name --certificate-body file://combined.crt --private-key file://server.key

如果一切顺利,你会收到来自服务器的响应:

{
    "ServerCertificateMetadata": {
        "ServerCertificateId": "ABCDEFG12345678", 
        "ServerCertificateName": "certificate-name", 
        "Expiration": "2018-08-26T11:59:38Z", 
        "Path": "/", 
        "Arn": "arn:aws:iam::1234123412:server-certificate/certificate-name", 
        "UploadDate": "2017-08-26T19:53:46.989Z"
    }
}

就是这样,您应该可以在 AWS 中使用新的 SSL 证书。

【讨论】:

    【解决方案2】:

    大约两年前,但我偶然发现了这一点,它让我难过一秒钟。

    证书正文*是 zip 文件中的主键,我的看起来像 f7dsdfsdf2f4e942d.crt,只有一个条目。

    中间字段 Certificate private key* 是签署您的 csr 的 ssh 私钥。它存在于您用来创建 csr 请求的服务器上。我通过查看 nginx 配置文件并复制到我的本地驱动器找到了我的位置。

    最后一个字段证书链是包含3个条目的文件,我的看起来像gd_bundle-g2-g1.crt

    【讨论】:

      【解决方案3】:

      如果您使用的是 Windows IIS 服务器:

      私钥

      • 按照说明here 获取您的私钥。本质上(没有屏幕截图):
        • 运行 mmc.exe
        • 文件菜单中,选择添加/删除管理单元
        • 在出现的新窗口中,单击添加
        • 选择证书,然后单击添加
        • 选择计算机帐户选项并单击下一步
        • 选择本地计算机,然后点击完成
        • 单击关闭,然后单击确定。证书(本地计算机)的管理单元出现在控制台中。
        • 在左侧预览面板中展开证书(本地计算机)树。
        • 右键单击个人并选择所有任务>导入。出现证书导入向导。点击下一步
        • 浏览到您的服务器证书文件所在的位置,然后单击下一步
        • 选择将所有证书放入以下存储中,然后单击下一步
        • 单击完成以完成证书导入向导。
        • 出现一个对话框,指示导入成功。点击确定。
      • 在树上展开个人,然后点击证书。双击您的证书。
      • 从证书弹出窗口的详细信息选项卡中单击复制到文件,然后创建一个 .pfx 文件。
      • 转到 here 将其转换为 PEM 格式。
      • 仅粘贴从-----BEGIN PRIVATE KEY----------END PRIVATE KEY----- 的部分。
        • 不是-----BEGIN PRIVATE KEY----- 上面的行,也不是-----END PRIVATE KEY----- 下面的行

      公钥

      • 在下载的 zip 文件中使用 GoDaddy 提供的 .crt 文件。

      证书链

      • 在下载的 zip 文件中使用 GoDaddy 提供的 gd_bundle-g2-g1.crt。

      【讨论】:

        【解决方案4】:

        如你所说,对于 AWS ELB,你需要三件事

        私钥

        你在 linux 上生成的 rsa 密钥

        #openssl genrsa -des3 -out host.key 2048

        它会要求输入密码,现在给它,我们稍后会删除它。

        公钥

        您首先从您的私钥生成 csr 文件,该文件是证书签名请求(在您的情况下,您提交给权威机构 Godaddy 以获取公钥的文件)。您可以使用生成 csr 文件

        #openssl req -new -key host.key -out host.csr

        现在您将您的 csr 文件提交给 godaddy,作为回报,他们会为您提供两个文件(mydomain.crt、gd_bundle.crt)。 mydomain.crt 是您的公钥。

        证书链

        gd_bundle.crt 是 Godaddy 为您提供您的公钥的认证链文件。您的公钥和认证链文件不需要任何转换,但对于私钥文件,您需要删除其密码并将其转换为 pem

        #openssl rsa -in host.key -out private.pem 
        

        AWS.put private key.pem 文件内容放在 aws 私钥部分并将 mydomain.crt 文件内容放在公钥中并将 gd_bundle.crt 内容放在证书链部分中。转换完全取决于您从哪里获得证书。如果从其他公司获得证书,我会建议您关注 AWS Docs。

        http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html
        

        【讨论】:

        • 什么是证书正文
        【解决方案5】:

        这里是关于如何在 Amazon Elastic Load Balancer (ELB) http://cloudarch.co.uk/2011/10/elastic-load-balancer-ssl-setup-guide-pem-encoded-csr/#.UKFla2nGU_8987654321@上获得 Godaddy ssl 证书的指南

        【讨论】:

        • 哈哈,我刚开始在我们的博客上写一篇关于这个的帖子......我的主要问题是我有一个 java 基石,我应该从 openssl 开始。
        • 链接已备份!万岁!
        • 链接又断了:(
        • 链接被破坏、修复和破坏的问题再次凸显了不鼓励仅链接答案的一个可能原因。
        【解决方案6】:

        您想将 mydomain.crt 转换为 mydomain.pem(另外两个文件是信任链文件)。您可以在任何 unix 或 linux 系统上使用 openssl 从 crt 生成 pem 文件。

        由于证书颁发者拥有私钥,它应该要求您提供私钥的唯一原因是它是否正在尝试生成证书。如果您已经拥有证书,则应该使用它。检查documentation

        【讨论】:

        • 非常感谢,我设法将 mydomain.crt 转换为 mydomain.pem。那是私钥还是公钥?如何生成另一个?
        • 私钥归证书颁发者所有。您只需获得签名证书。如果它是自签名的,您将只有一个私钥。
        猜你喜欢
        • 2017-12-18
        • 2016-01-24
        • 2016-05-29
        • 2016-03-10
        • 1970-01-01
        • 2020-07-28
        • 1970-01-01
        • 2018-11-01
        • 1970-01-01
        相关资源
        最近更新 更多