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

如何为AWS EC2 Web服务器启用HTTPS?Nginx配置后证书签发失败

问题原因

Let's Encrypt的ACME服务器禁止为AWS EC2默认公共域名(如ec2-43-198-203-153.ap-east-1.compute.amazonaws.com)签发证书,这类域名归属AWS而非个人/企业,不符合证书签发的合规政策。

解决步骤

1. 配置自有域名指向EC2实例

  • 注册一个属于你的独立域名(如example.com),在域名服务商的DNS管理后台添加A记录,将目标子域名(如www.example.com)指向EC2实例的公网IP43.198.203.153。
  • 等待DNS解析生效,可通过ping 你的域名验证是否指向正确IP。

2. 修改Nginx站点配置

  • 找到Nginx配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),将server_name字段替换为你的自有域名:
server {
    listen 80;
    server_name example.com www.example.com;
    # 其余原有配置保持不变
}
  • 验证配置合法性:sudo nginx -t,确认无报错后重启Nginx:sudo systemctl restart nginx。

3. 重新申请CA签名证书

  • 执行certbot --nginx,按照提示选择你的自有域名完成证书申请,Certbot会自动修改Nginx配置并开启HTTPS访问。
临时测试备选方案

若暂时无自有域名,可使用自签名证书(仅适合测试,浏览器会触发安全警告):

  • 生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
  • 修改Nginx配置开启HTTPS:
server {
    listen 443 ssl;
    server_name ec2-43-198-203-153.ap-east-1.compute.amazonaws.com;
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
    # 其余原有配置保持不变
}
  • 重启Nginx后即可通过HTTPS访问,忽略浏览器安全警告即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:30:01