问题:
我已经使用此配置脚本在AWS上安装了Nginx
--prefix=/usr/local/nginx-1.16.1 --with-http_ssl_module --with-openssl=~/Downloads/openssl-1.1.1i --without-http_rewrite_module
并且我已经使用AWS Certificate Manager(ACM)为我的URL颁发了证书(让它为mydom.com),并且其状态显示为"已发布",然后我在nginx.conf中编辑了相关部分
server {
listen 443 ssl;
server_name localhost mydom.com;
ssl_certificate /etc/ssl/certs/ca-bundle.crt;
ssl_certificate_key /etc/trusted-key.key;
<truncated>
}
我只选择了文件: /etc/ssl/certs/ca-bundle.crt
和/etc/trusted-key.key
,因为它们位于Linux文件系统中,只是为了尝试运行,它给出:
[emerg] cannot load certificate key "/etc/trusted-key.key": PEM_read_bio_PrivateKey() failes (SSL: error:0909006C:PEM routines:get_name: no start line:Expecting: ANY PRIVATE KEY)
答案1:
ACM证书只能由AWS托管服务使用,主要是负载平衡器,无法访问私钥,因此无法使用Nginx在EC2实例上安装的ACM证书。
最好的选择是:
- 在ALB终止https,通过http将通信转发到web服务器
- 使用let's Encrypt证书,有多种软件可供选择,有助于实现自动化
相关文章