You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2上通过PuTTY配置Nginx:如何获取AWS公证书的SSL文件?

解决AWS ACM证书在EC2 Nginx中使用的问题

嘿,我帮你理清这个困惑!首先得明确一个关键点:AWS Certificate Manager(ACM)的公有证书是无法直接下载私钥(.key)文件的——这是AWS的设计限制,因为ACM主要是为了和AWS托管服务(比如ALB、CloudFront)无缝集成,而非直接提供给EC2上的自托管服务使用。不过别担心,有两个靠谱的解决方案,看哪种更适合你:

方案一:用Application Load Balancer(ALB)终止SSL(推荐)

这是最省心的方案,也是AWS推荐的做法,不需要在EC2的Nginx里处理任何SSL配置:

  • 登录AWS控制台,创建一个Application Load Balancer,在配置HTTPS监听器(443端口)时,选择你已有的ACM公有证书
  • 配置目标组,将流量转发到你的EC2实例的HTTP端口(比如80),确保目标组能正常检测到EC2的健康状态
  • 调整EC2的安全组规则:只允许ALB的安全组访问EC2的80端口,同时可以关闭EC2直接对外的443端口(提升安全性)
  • 最后把你的域名解析到ALB的DNS地址即可

这样用户访问你的域名的HTTPS请求时,ALB会自动用ACM证书完成SSL加密,然后把解密后的HTTP请求转发给EC2上的Nginx。你不需要修改Nginx的SSL相关配置,ACM还会自动帮你续期证书,完全不用手动维护。

方案二:在EC2上直接使用ACM证书(仅适用于自定义CSR申请的证书)

如果你坚持要在Nginx里处理SSL,那只有一种情况可行:你是通过自己生成的CSR(证书签名请求)提交到ACM申请的公有证书。这种情况下可以通过AWS CLI导出证书文件,步骤如下:

  1. 给你的EC2实例绑定一个IAM角色,该角色需要拥有acm:ExportCertificate和ssm:PutParameter等相关权限(建议配置最小权限,避免过度授权)
  2. 在EC2上安装并配置AWS CLI(确保能正常访问ACM服务)
  3. 创建一个密码文件(比如passphrase.txt),里面输入用来加密私钥的密码(注意保管好这个密码)
  4. 运行以下命令导出证书:
    aws acm export-certificate --certificate-arn "你的证书ARN" --passphrase file://passphrase.txt
    
    这个命令会返回三个内容:证书链(CertificateChain)、证书(Certificate)、加密后的私钥(PrivateKey)
  5. 把这三个内容分别存储到AWS Systems Manager Parameter Store的安全字符串类型参数中(避免明文泄露)
  6. 在EC2上,用AWS CLI从SSM拉取这些内容,解密私钥,保存成对应的文件:
    • 拉取证书并保存为domain.crt
    • 拉取证书链并追加到domain.crt(或者单独保存为chain.crt,在Nginx里配置ssl_certificate_chain)
    • 拉取加密的私钥,用你设置的密码解密后保存为domain.key
  7. 最后在Nginx的配置文件中指定这两个文件:
    server {
        listen 443 ssl;
        server_name your-domain.com;
    
        ssl_certificate /path/to/domain.crt;
        ssl_certificate_key /path/to/domain.key;
    
        # 其他SSL配置...
    }
    
    重启Nginx即可生效

⚠️ 注意:如果你的ACM证书是AWS自动生成的(没有提交自定义CSR),那是无法导出私钥的,这个方案就不适用了。

额外提示

如果上述方案都不符合你的需求,也可以考虑使用Let's Encrypt等免费证书颁发机构,生成可以直接下载的.crt和.key文件,然后在Nginx里配置,同时可以用certbot自动续期证书,也是一个不错的替代方案。

内容的提问来源于stack exchange,提问作者Yoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 13:57:48