如何在aws elb上安装godaddy ssl证书?

Posted

技术标签:

【中文标题】如何在aws elb上安装godaddy ssl证书?【英文标题】:How to install godaddy ssl certificate on aws elb? 【发布时间】: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?我无法使用本教程配置这些键 =/ 【参考方案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。那是私钥还是公钥?如何生成另一个? 私钥归证书颁发者所有。您只需获得签名证书。如果它是自签名的,您将只有一个私钥。

以上是关于如何在aws elb上安装godaddy ssl证书?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 ELB 实例安装外部 SSL?

Wix + GoDaddy 域 + 子域的 AWS ELB

如何将 godaddy ssl 证书添加到托管在 aws ec2 上的站点

在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误

无法在 AWS EC2 (Ubuntu) apache 系统上 SSL Godaddy 验证证书

https SSL AWS ELB 单实例