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

如何为AWS EC2实例公网IP启用SSL证书(含Nginx方案)

为EC2公网IP启用SSL实现HTTPS访问

方案1:Nginx反向代理+自签SSL证书

由于免费CA(如Let's Encrypt)不支持为裸IP颁发证书,自签证书是成本最低的实现方式,也可选择支持IP的商业CA(成本较高,本文重点讲自签方案)。

步骤1:安装Nginx

根据EC2实例的操作系统选择对应命令:

  • Ubuntu/Debian系统:
sudo apt update && sudo apt install nginx -y
  • Amazon Linux/RHEL系统:
sudo yum update && sudo yum install nginx -y

步骤2:生成针对公网IP的自签证书

使用OpenSSL生成证书,执行命令时在Common Name字段输入你的EC2公网IPv4地址(如3.135.222.337),其他字段可按需填写或留空:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ip-ssl.key -out /etc/ssl/certs/ip-ssl.crt

步骤3:配置Nginx反向代理

创建并编辑Nginx配置文件/etc/nginx/sites-available/ip-ssl.conf:

server {
    listen 443 ssl;
    server_name 3.135.222.337; # 替换为你的EC2公网IP

    ssl_certificate /etc/ssl/certs/ip-ssl.crt;
    ssl_certificate_key /etc/ssl/private/ip-ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://localhost:3000; # 转发到应用所在端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 可选配置:将HTTP请求自动重定向到HTTPS
server {
    listen 80;
    server_name 3.135.222.337;
    return 301 https://$host$request_uri;
}

启用配置并重启Nginx:

sudo ln -s /etc/nginx/sites-available/ip-ssl.conf /etc/nginx/sites-enabled/
sudo nginx -t # 检查配置语法是否正确
sudo systemctl restart nginx

步骤4:更新EC2安全组规则

在AWS控制台的EC2安全组中,开放443端口(HTTPS),若配置了HTTP重定向则同时开放80端口,允许来自目标访问范围的流量。

完成后即可通过https://3.135.222.337访问应用(无需附加3000端口,Nginx已将443端口的请求转发到应用端口)。

方案2:使用Caddy简化配置

Caddy可自动生成并管理针对IP的自签证书,配置更简洁:

步骤1:安装Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy -y

步骤2:配置Caddy

编辑/etc/caddy/Caddyfile:

3.135.222.337:443 {
    reverse_proxy localhost:3000
}

# 可选配置:HTTP重定向到HTTPS
3.135.222.337:80 {
    redir https://{host}{uri} permanent
}

重启Caddy生效:

sudo systemctl restart caddy

注意事项

  • 自签证书会被浏览器标记为“不安全”,属于正常现象。若要消除提示,可将证书导入浏览器信任商店,或购买支持IP的商业SSL证书。
  • 确保应用绑定到localhost:3000或0.0.0.0:3000,允许反向代理工具转发请求。

内容的提问来源于stack exchange,提问作者Towsif Ahamed Labib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:52:41