29

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

  • 我的域名.crt
  • gd_intermediate.crt
  • gd_bundle.crt

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

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

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

4

6 回答 6

24

对于 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
于 2014-03-25T10:34:23.137 回答
6

我最近不得不经历这个过程,但没有一个答案对我有用。以下是允许我将新 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.keyandcombined.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 证书。

于 2017-08-26T23:45:51.857 回答
6

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

Certificate body*是 zip 文件中的主键,我的看起来像这样,f7dsdfsdf2f4e942d.crt只有一个条目。

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

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

于 2017-08-17T01:31:31.710 回答
0

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

于 2012-11-12T21:10:24.113 回答
0

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

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

于 2012-10-20T14:13:42.880 回答
0

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

私钥

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

公钥

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

证书链

  • 在下载的 zip 文件中使用 GoDaddy 提供的 gd_bundle-g2-g1.crt。
于 2015-11-23T13:20:37.520 回答