我从 Go Daddy 购买了 SSL 证书,并将我的网站托管在 AWS 上运行 nginx 的 Linux 实例上。
我正在尝试将 SSL 证书安装到我在 AWS 上的一个实例上
这是我对这个过程如何运作的理解。
为了获得 SSL 证书,我必须创建 CSR,创建 CSR 时也会创建私钥。我将 CSR 提交给我的 CA(Go Daddy),他们使用它来创建我的证书和证书链。然后我将证书、证书链和私钥放入我的服务器,就这样。
有两种方法可以做到这一点,要么直接在服务器上,要么通过 AWS。我正在尝试在 AWS 上做到这一点。
https://sg.godaddy.com/help/manually-install-an-ssl-certificate-on-my-aws-server-32075
本教程假设我已经拥有 CSR 和私钥,但事实并非如此。
因此我尝试了以下方法来获取 CSR
https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaGetCsr.html
https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html
转到 Amazon 证书管理器
创建从属 CA(我不知道为什么)
2.1. 输入您的详细信息,而不是 GoDaddy 的详细信息。
2.2. 接受以下所有页面的默认设置并创建
安装从属CA证书3.1选择外部私有CA
3.2 此页面为您提供此 CA 的 CSR,请将 CSR 复制并粘贴到 Go Daddy 中,以将证书从 Go Daddy 密钥到我的服务器
3.3 从 go daddy 下载新密钥的 SSL 证书,将 bundle 文件放在证书链字段中,将其他文件放在证书主体字段中
现在我明白了
MalformedCertificateException:基本约束扩展必须指定该证书适用于CA。”
我在这里显然做错了什么。错误消息似乎让我误解了这个亚马逊功能的用途。
而我只有一个 CSR,没有私钥。
遵循本指南
https://sg.godaddy.com/help/manually-install-an-ssl-certificate-on-my-aws-server-32075
我到了第 8 步,但我没有私钥文件。
经过一番研究我发现这些
https://superuser.com/a/1428640
https://serverfault.com/a/919007/596551
这意味着我永远不会通过这种方法获得私钥,这让我回到原点,没有 CSR 也没有私钥,因此无法生成证书。但是根据第一个链接,我正在使用 Amazon Load Balancer
我的问题是。
- 我对申请SSL证书的流程的理解正确吗?
- 从头开始将 SSL 证书应用于 AWS 的正确方法是什么?
什么时候
答案1
我没有读过你的 aws 文档链接,但我已多次在 AWS ELB、EC2 VM、apache httpd 上申请证书。如果这对你来说并不简单,你不必遵循 aws 指南。你可以用老式的方法做。我就是这样做的。你在 Linux 服务器中使用 openssl 命令和私钥创建 CSR,然后从 go daddy 获取该 CSR 的签名 SSL。稍后你可以在 AWS ACM 中导入证书和私钥。你稍后可以使用它来申请 ELB 或直接在 Web 服务器中应用这些证书和密钥。很简单,不是吗。互联网上有很多关于如何使用 openssl 和私钥生成 CSR 的教程,你可以通过你最喜欢的 Web 搜索引擎(如谷歌)找到它们。所以我不会重复这些步骤。如果你还不知道,我留给你自己去发现吧。