我在 AWS Elastic Load Balancer 上安装 SSL 证书时遇到了点麻烦。我有一个来自 GoDaddy 的通配符证书,需要将其指向 ELB。
我已经运行了该命令(我在负载均衡器后面的一台服务器上运行了它):
openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr
然后我将 .csr 文件发送给 GoDaddy。此时他们返回了一个 zip 文件夹,其中包含两个文件:gd_bundle.crt
和mydomain.com.crt
。查看 gd_bundle.crt 时发现它里面有两个唯一密钥(两个 base 64 编码字符串)。
Amazon ELB 要求提供公钥和私钥,根据我所做的操作,我不确定哪个是公钥。从这一点来看,我不确定要做什么才能加载所有这些。
任何帮助将不胜感激。
答案1
私钥是您与 CSR 一起生成的 mydomain.key。
GoDaddy 向您发送的是公钥(由 GoDaddy 签名的证书文件 mydomain.com.crt),以及 GoDaddy 的中间证书链,以完成您的证书与最终用户浏览器所知的证书(gd_bundle.crt 文件)之间的信任链。
我对 ELB 不是特别熟悉,但是查看这个文档页面:
您将提供 mydomain.key 文件作为私钥、mydomain.com.crt 文件作为公钥,并提供 gd_bundle.crt 文件作为证书链。
答案2
将 GoDaddy 证书添加到 EC2 ELB
设置 AWS 命令行界面
安装说明位于此处:http://aws.amazon.com/cli/
定义您的文件并运行以下命令:
# define these
crtdomain="example.com"
crtchain="gd_bundle.crt"
echo "converting to pem format"
openssl rsa -in ${crtdomain}.key -out aws-${crtdomain}.key
openssl x509 -in ${crtdomain}.crt -out aws-${crtdomain}.crt -outform PEM
echo "uploading certificate ${crtdomain} to Amazon"
aws iam upload-server-certificate \
--certificate-body file://aws-${crtdomain}.crt \
--private-key file://aws-${crtdomain}.key \
--certificate-chain file://${crtchain} \
--server-certificate-name ${crtdomain}
答案3
如果你打开你的文件,text editor
你会看到
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
链条可能是gd_bundle.crt
我给了我certificate name
与公钥相同的名称,mydomain.com.crt
该名称Private Key
来自制作密钥的文本版本:
sudo openssl rsa -in /etc/ssl/certs/mydomain.key -text
(这将是服务器上文件的路径) /etc/ssl/certs/
最Public Key
有可能的是mydomain.com.crt
并且Certificate Chain
可能会gd_bundle.crt