我从godaddy购买了SSL证书 . 我创建了一个密钥库文件,从中生成了一个csr文件,将其发送给godaddy,并收到了这些文件:
mydomain.crt
gd_intermediate.crt
gd_bundle.crt
现在我尝试在AWS控制台中创建Elastic Load Balancer . 当被问及证书详情时,他们要求:
私钥(pem编码)
公钥证书(pem编码)
证书链(pem编码,可选)
如何将我拥有的文件转换为这些参数?
对于AWS ELB,您需要三件事
Private Key
你用linux生成的rsa密钥
#openssl genrsa -des3 -out host.key 2048
它会要求输入密码,暂时给它我们以后会删除它 .
Public key
从您的私钥开始,您首先生成csr文件,即证书签名请求(您在案例godaddy中提交给权限以获取公钥的那个) . 你可以使用生成csr文件
#openssl req -new -key host.key -out host.csr
现在你将你的csr文件提交给godaddy,作为回报,它们为你提供了两个文件(mydomain.crt,gd_bundle.crt) . mydomain.crt是你的公钥 .
Certificate Chain
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
我最近不得不经历这个过程,没有一个答案对我有用 . 以下是允许我将新SSL证书上载到AWS的步骤(以便在ElasticBeanstalk中使用) .
Obtaining Private Key
我不得不在这个过程中使用两个命令:
openssl genrsa -des3 -out server.pass.key 2048 openssl rsa -in server.pass.key -out server.key
server.key 文件是您的私钥 .
server.key
此外,您可以通过执行以下操作生成CSR(证书签名请求):
openssl req -nodes -new -key server.key -out server.csr
这是我们用来请求GoDaddy颁发新证书的文件 .
Obtaining Public Key
一旦在GoDaddy中发布了证书,就下载它 . 这将为您提供两个必须通过执行以下操作捆绑在一起的文件:
cat yourdomain.crt gd_bundle-g2-g1.crt > combined.crt
combined.crt 将是您的公钥 .
combined.crt
Uploading server certificate to 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证书 .
大约差不多两年前,但是我突然想到了这一点,它让我感到困惑了一秒钟 .
Certificate body* 是zip文件中的主键,我看起来像 f7dsdfsdf2f4e942d.crt ,只有一个条目 .
f7dsdfsdf2f4e942d.crt
中间字段 Certificate private key* 是签署csr的ssh私钥 . 它位于用户创建csr请求的服务器上 . 我通过查看nginx配置文件并复制到我的本地驱动器找到了我的位置 .
最后一个字段 Certificate chain 是包含3个条目的文件,我看起来像 gd_bundle-g2-g1.crt .
gd_bundle-g2-g1.crt
以下是如何获取使用Amazon Elastic Load Balancer(ELB)的Godaddy ssl证书的指南http://cloudarch.co.uk/2011/10/elastic-load-balancer-ssl-setup-guide-pem-encoded-csr/#.UKFla2nGU_8
您想将mydomain.crt转换为mydomain.pem(其他两个文件是信任链文件) . 您可以在任何unix或linux系统上使用openssl从crt生成pem文件 .
由于证书颁发者具有私钥,因此它应该要求您提供私钥的唯一原因是它是否正在尝试生成证书 . 如果您已经拥有证书,则应该使用它 . 检查documentation
如果您使用的是Windows IIS服务器:
Private key
按照说明here获取您的私钥 . 基本上(没有屏幕截图):
运行mmc.exe
从“文件”菜单中,选择“添加/删除管理单元” .
在出现的新窗口中,单击“添加” .
选择“证书”,然后单击“添加” .
选择“计算机帐户”选项,然后单击“下一步” .
选择“本地计算机”,然后单击“完成” .
单击“关闭”,然后单击“确定” . 证书(本地计算机)的管理单元显示在控制台中 .
展开“证书(本地计算机)”树左侧预览面板 .
右键单击“个人”,然后选择“所有任务”>“导入” . 出现“证书导入向导” . 点击下一步 .
浏览到服务器证书文件的位置,然后单击“下一步” .
选择将所有证书放在以下存储中,然后单击“下一步” .
单击“完成”以完成“证书导入向导” .
出现一个对话框,表明导入成功 . 单击确定 .
在树上,展开“个人”,然后单击“证书” . 双击您的证书 .
从“证书”弹出窗口的“详细信息”选项卡中单击“复制到文件”,然后创建.pfx文件 .
转到here将其转换为PEM格式 .
仅粘贴 -----BEGIN PRIVATE KEY----- 至 -----END PRIVATE KEY----- 的零件 .
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
不是 -----BEGIN PRIVATE KEY----- 以上的行而不是 -----END PRIVATE KEY----- 以下的行
Public Key
Certificate chain
6 回答
对于AWS ELB,您需要三件事
Private Key
你用linux生成的rsa密钥
#openssl genrsa -des3 -out host.key 2048
它会要求输入密码,暂时给它我们以后会删除它 .
Public key
从您的私钥开始,您首先生成csr文件,即证书签名请求(您在案例godaddy中提交给权限以获取公钥的那个) . 你可以使用生成csr文件
#openssl req -new -key host.key -out host.csr
现在你将你的csr文件提交给godaddy,作为回报,它们为你提供了两个文件(mydomain.crt,gd_bundle.crt) . mydomain.crt是你的公钥 .
Certificate Chain
gd_bundle.crt是认证链文件,godaddy为您提供公钥 . 您的公钥和认证链文件不需要任何转换,但对于私钥文件,您需要删除其密码并将其转换为pem with
在aws私钥部分中获取AWS.put private key.pem文件内容并将mydomain.crt文件内容放在公钥中并将gd_bundle.crt内容放在认证链部分中是很好的 . 转换全部取决于您获得证书的位置 . 如果从其他公司获得证书,我会建议您关注AWS Docs .
我最近不得不经历这个过程,没有一个答案对我有用 . 以下是允许我将新SSL证书上载到AWS的步骤(以便在ElasticBeanstalk中使用) .
Obtaining Private Key
我不得不在这个过程中使用两个命令:
server.key
文件是您的私钥 .此外,您可以通过执行以下操作生成CSR(证书签名请求):
这是我们用来请求GoDaddy颁发新证书的文件 .
Obtaining Public Key
一旦在GoDaddy中发布了证书,就下载它 . 这将为您提供两个必须通过执行以下操作捆绑在一起的文件:
combined.crt
将是您的公钥 .Uploading server certificate to AWS
使用
server.key
和combined.crt
文件,您现在可以使用AWS CLI将证书上载到AWS . 您只需使用以下命令:如果一切顺利,您将收到服务器的回复:
就是这样,您应该在AWS中拥有一个新的SSL证书 .
大约差不多两年前,但是我突然想到了这一点,它让我感到困惑了一秒钟 .
Certificate body* 是zip文件中的主键,我看起来像
f7dsdfsdf2f4e942d.crt
,只有一个条目 .中间字段 Certificate private key* 是签署csr的ssh私钥 . 它位于用户创建csr请求的服务器上 . 我通过查看nginx配置文件并复制到我的本地驱动器找到了我的位置 .
最后一个字段 Certificate chain 是包含3个条目的文件,我看起来像
gd_bundle-g2-g1.crt
.以下是如何获取使用Amazon Elastic Load Balancer(ELB)的Godaddy ssl证书的指南http://cloudarch.co.uk/2011/10/elastic-load-balancer-ssl-setup-guide-pem-encoded-csr/#.UKFla2nGU_8
您想将mydomain.crt转换为mydomain.pem(其他两个文件是信任链文件) . 您可以在任何unix或linux系统上使用openssl从crt生成pem文件 .
由于证书颁发者具有私钥,因此它应该要求您提供私钥的唯一原因是它是否正在尝试生成证书 . 如果您已经拥有证书,则应该使用它 . 检查documentation
如果您使用的是Windows IIS服务器:
Private key
按照说明here获取您的私钥 . 基本上(没有屏幕截图):
运行mmc.exe
从“文件”菜单中,选择“添加/删除管理单元” .
在出现的新窗口中,单击“添加” .
选择“证书”,然后单击“添加” .
选择“计算机帐户”选项,然后单击“下一步” .
选择“本地计算机”,然后单击“完成” .
单击“关闭”,然后单击“确定” . 证书(本地计算机)的管理单元显示在控制台中 .
展开“证书(本地计算机)”树左侧预览面板 .
右键单击“个人”,然后选择“所有任务”>“导入” . 出现“证书导入向导” . 点击下一步 .
浏览到服务器证书文件的位置,然后单击“下一步” .
选择将所有证书放在以下存储中,然后单击“下一步” .
单击“完成”以完成“证书导入向导” .
出现一个对话框,表明导入成功 . 单击确定 .
在树上,展开“个人”,然后单击“证书” . 双击您的证书 .
从“证书”弹出窗口的“详细信息”选项卡中单击“复制到文件”,然后创建.pfx文件 .
转到here将其转换为PEM格式 .
仅粘贴
-----BEGIN PRIVATE KEY-----
至-----END PRIVATE KEY-----
的零件 .不是
-----BEGIN PRIVATE KEY-----
以上的行而不是-----END PRIVATE KEY-----
以下的行Public Key
Certificate chain