如何将AWS EC2服务器指向GoDaddy域名并配置SSL证书
一、解决GoDaddy域名指向EC2实例的报错问题
结合GoDaddy常见解析错误场景,按以下步骤排查修复:
- 确认输入的是EC2实例的纯公网IPv4地址,不要加端口、
http://这类多余内容,格式类似13.234.56.78 - 选择正确的记录类型:主域名或子域名都用
A记录,记录值直接填EC2公网IP - 检查EC2实例状态:确保实例处于运行中,安全组已开放80、443端口(后续SSL配置用),如果用的是临时公网IP,建议分配弹性IP避免IP变更导致解析失效
二、为同一EC2实例的不同端口配置SSL证书
SSL证书是绑定域名而非端口的,直接给端口绑证书不现实,推荐用Nginx反向代理+Let's Encrypt免费证书的方案,用子域名区分不同服务,步骤如下:
1. 安装Nginx和Certbot
sudo apt update sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y
2. 配置Nginx反向代理
假设你的主域名是yourdomain.com,用子域名分别指向前端和后端:
- React前端(3002端口):
www.yourdomain.com - Node.js服务(4000端口):
api.yourdomain.com
创建并编辑Nginx配置文件:
sudo nano /etc/nginx/sites-available/yourdomain.conf
粘贴以下配置(记得替换成自己的域名):
# 前端React服务配置 server { listen 80; server_name www.yourdomain.com; location / { proxy_pass http://localhost:3002; 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; } } # Node.js API服务配置 server { listen 80; server_name api.yourdomain.com; location / { proxy_pass http://localhost:4000; 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; } }
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-enabled/ sudo nginx -t # 检查配置是否合法,无报错再继续 sudo systemctl restart nginx
3. 申请并自动配置SSL证书
运行Certbot命令,自动获取证书并配置HTTPS:
sudo certbot --nginx -d www.yourdomain.com -d api.yourdomain.com
跟着提示操作,选择“自动将HTTP请求重定向到HTTPS”即可。
4. 验证效果
- 访问
https://www.yourdomain.com,应该能正常打开React前端 - 访问
https://api.yourdomain.com,应该能访问到Node.js服务 - Certbot会自动每90天续期证书,无需手动操作
内容的提问来源于stack exchange,提问作者murtaza shah
相关产品推荐
相关产品推荐

