如何在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.key
和combined.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证书?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 godaddy ssl 证书添加到托管在 aws ec2 上的站点
在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误