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

时间:2012-10-20 14:02:39

标签: amazon-web-services ssl https

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

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

现在我正在尝试在AWS控制台中创建Elastic Load Balancer。当被要求提供证书详细信息时,他们会要求:

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

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

6 个答案:

答案 0 :(得分:21)

对于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 with

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

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

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

答案 1 :(得分:4)

我最近不得不经历这个过程,但没有一个答案适合我。以下是允许我将新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 :(得分:3)

大约差不多两年前,但是我突然想到这一点,它让我感到困惑了一秒钟。

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

中间字段证书私钥* 是为您的csr签名的ssh私钥。它位于用户创建csr请求的服务器上。我通过查看nginx配置文件并复制到我的本地驱动器找到了我的位置。

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

答案 3 :(得分:1)

以下是如何获取适用于Amazon Elastic Load Balancer(ELB)的Godaddy ssl证书的指南http://cloudarch.co.uk/2011/10/elastic-load-balancer-ssl-setup-guide-pem-encoded-csr/#.UKFla2nGU_8

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

如果您使用的是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。