在AWS上,使用SSL运行Nginx

分享于 

2分钟阅读

互联网

  繁體

问题:

我已经使用此配置脚本在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证书,有多种软件可供选择,有助于实现自动化


Nginx  aws  SSL  
相关文章