qiangdanxitong/域名和HTTPS配置指南.md

534 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 域名和HTTPS配置指南
## 🌐 域名信息
**域名**: qd.yydd.ai
**公网服务器**: 156.225.27.52:50232
**内网端口**: 5246 (frp穿透)
---
## 📋 配置步骤
### ✅ 已完成的工作
1. ✅ **Certbot安装** - SSL证书工具已安装
2. ✅ **Nginx配置** - 反向代理配置已创建
3. ✅ **HTTP配置** - 临时HTTP访问已配置
4. ✅ **HTTPS配置文件** - 已预创建(待证书申请后启用)
### ⏳ 待完成的工作
1. **DNS解析配置**(必须先完成)
```
需要在域名管理后台添加A记录:
主机记录: qd
记录类型: A
记录值: 156.225.27.52
TTL: 600(或默认)
```
2. **验证DNS解析**
```bash
# 在本地或任意机器执行
ping qd.yydd.ai
# 应该解析到 156.225.27.52
nslookup qd.yydd.ai
# 应该返回 156.225.27.52
```
3. **申请SSL证书**(DNS解析生效后)
```bash
ssh -p 50232 root@156.225.27.52
# 密码:it5NuKGemX
# 申请证书
certbot certonly \
--webroot \
--webroot-path=/www/wwwroot/qd.yydd.ai \
--email admin@yydd.ai \
-d qd.yydd.ai \
--agree-tos \
--non-interactive
```
4. **启用HTTPS配置**
```bash
# 删除旧的HTTP配置
rm -f /www/server/panel/vhost/nginx/qd.yydd.ai.conf
# 启用HTTPS配置
mv /www/server/panel/vhost/nginx/qd.yydd.ai_ssl.conf \
/www/server/panel/vhost/nginx/qd.yydd.ai.conf
# 重载Nginx
nginx -t && nginx -s reload
```
5. **配置自动续期**
```bash
# 添加定时任务(每天凌晨2点检查续期)
crontab -e
# 添加:
0 2 * * * certbot renew --quiet --post-hook "nginx -s reload"
```
---
## 🔧 当前配置状态
### 服务器架构
```
用户浏览器
↓ HTTPS
qd.yydd.ai (公网服务器 156.225.27.52:80/443)
↓ Nginx反向代理
127.0.0.1:5246 (frp穿透端口)
↓ frp内网穿透
内网服务器 127.0.0.1:8888
↓ Nginx代理
后端API 127.0.0.1:8080
↓ Spring Boot
MySQL 127.0.0.1:3306
```
### 配置文件位置
| 类型 | 路径 |
|------|------|
| **公网服务器** | |
| HTTP配置 | /www/server/panel/vhost/nginx/qd.yydd.ai.conf |
| HTTPS配置 | /www/server/panel/vhost/nginx/qd.yydd.ai_ssl.conf |
| SSL证书 | /etc/letsencrypt/live/qd.yydd.ai/ |
| | |
| **内网服务器** | |
| frp配置 | /etc/frp/frpc.ini |
| 后端服务 | /opt/designhub/designhub.jar |
| Nginx配置 | /etc/nginx/sites-available/designhub.conf |
---
## 🎯 快速测试
### 当前可用的访问方式
1. **IP直接访问(已可用)**
- http://156.225.27.52:5246
- 登录:admin / 123456
2. **域名HTTP访问(需DNS解析后)**
- http://qd.yydd.ai
- 登录:admin / 123456
3. **域名HTTPS访问(需DNS+证书)**
- https://qd.yydd.ai
- 登录:admin / 123456
### 测试命令
```bash
# 测试DNS解析
ping qd.yydd.ai
# 测试HTTP访问
curl -I http://qd.yydd.ai
# 测试HTTPS访问(证书申请后)
curl -I https://qd.yydd.ai
```
---
## 📝 DNS配置示例
### 在域名管理后台配置
**域名**: yydd.ai
**子域名**: qd
**添加A记录**:
```
类型: A
主机记录: qd
记录值: 156.225.27.52
TTL: 600
```
配置后等待5-10分钟DNS生效。
---
## 🔒 SSL证书申请流程
### 方式1:自动申请(推荐)
**前提**: DNS已解析
```bash
ssh -p 50232 root@156.225.27.52
# 一键申请证书
certbot certonly \
--webroot \
--webroot-path=/www/wwwroot/qd.yydd.ai \
--email admin@yydd.ai \
-d qd.yydd.ai \
--agree-tos \
--non-interactive
# 如果成功,会显示:
# Congratulations! Your certificate and chain have been saved at:
# /etc/letsencrypt/live/qd.yydd.ai/fullchain.pem
```
### 方式2:使用宝塔面板
1. 登录宝塔面板
2. 网站 → 添加站点
3. 域名:qd.yydd.ai
4. SSL → Let's Encrypt → 申请
---
## 🔄 HTTPS配置激活
### 证书申请成功后
```bash
ssh -p 50232 root@156.225.27.52
# 1. 检查证书文件
ls -la /etc/letsencrypt/live/qd.yydd.ai/
# 2. 启用HTTPS配置
rm -f /www/server/panel/vhost/nginx/qd.yydd.ai.conf
mv /www/server/panel/vhost/nginx/qd.yydd.ai_ssl.conf \
/www/server/panel/vhost/nginx/qd.yydd.ai.conf
# 3. 测试并重载Nginx
nginx -t && nginx -s reload
# 4. 验证HTTPS
curl -I https://qd.yydd.ai
```
---
## 🔐 自动续期配置
Let's Encrypt证书有效期90天,需要配置自动续期:
```bash
# 添加定时任务
crontab -e
# 添加以下行(每天凌晨2点检查续期)
0 2 * * * certbot renew --quiet --post-hook "nginx -s reload" >> /var/log/certbot-renew.log 2>&1
```
---
## 📊 完整访问地址汇总
### 🎯 推荐访问地址(配置完成后)
**HTTPS域名**(最终推荐):
```
https://qd.yydd.ai
```
### 🔧 备用访问地址
1. **HTTP域名**:
```
http://qd.yydd.ai
```
2. **IP+端口**:
```
http://156.225.27.52:5246
```
3. **SSH管理**:
```bash
# 公网服务器
ssh -p 50232 root@156.225.27.52
# 密码:it5NuKGemX
# 内网服务器
ssh -p 5204 root@156.225.27.52
# 密码:Jsjj@8888
```
---
## 🎨 配置文件示例
### Nginx HTTPS完整配置
```nginx
# /www/server/panel/vhost/nginx/qd.yydd.ai.conf
# HTTP自动跳转HTTPS
server {
listen 80;
server_name qd.yydd.ai;
location /.well-known/acme-challenge/ {
root /www/wwwroot/qd.yydd.ai;
}
location / {
return 301 https://$server_name$request_uri;
}
}
# HTTPS主配置
server {
listen 443 ssl http2;
server_name qd.yydd.ai;
# SSL证书
ssl_certificate /etc/letsencrypt/live/qd.yydd.ai/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/qd.yydd.ai/privkey.pem;
# SSL优化
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
client_max_body_size 100M;
# 反向代理
location / {
proxy_pass http://127.0.0.1:5246;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
access_log /www/wwwlogs/qd.yydd.ai.https.access.log;
error_log /www/wwwlogs/qd.yydd.ai.https.error.log;
}
```
---
## ⚠️ 重要提示
### 1. DNS解析优先
**必须先完成DNS解析**,再申请SSL证书!
Let's Encrypt需要通过域名验证您的服务器所有权。
### 2. 防火墙配置
确保80和443端口开放:
```bash
# CentOS防火墙
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
# 或检查是否已开放
firewall-cmd --list-ports
```
### 3. 证书有效期
- Let's Encrypt证书有效期:90天
- 建议提前30天自动续期
- 已配置自动续期定时任务
---
## 🧪 故障排查
### DNS未解析
```bash
# 检查DNS
nslookup qd.yydd.ai
ping qd.yydd.ai
# 如果解析失败,联系域名管理员配置A记录
```
### 证书申请失败
```bash
# 查看详细日志
cat /var/log/letsencrypt/letsencrypt.log
# 常见原因:
# 1. DNS未解析到服务器
# 2. 80端口被占用或防火墙阻止
# 3. Nginx配置错误
```
### HTTPS无法访问
```bash
# 检查证书文件
ls -la /etc/letsencrypt/live/qd.yydd.ai/
# 检查Nginx配置
nginx -t
# 查看错误日志
tail -50 /www/wwwlogs/qd.yydd.ai.https.error.log
```
---
## 🎯 一键完成脚本(DNS解析后使用)
```bash
#!/bin/bash
# 保存为 /root/setup_https.sh
echo "=== DesignHub HTTPS配置脚本 ==="
# 1. 申请SSL证书
certbot certonly \
--webroot \
--webroot-path=/www/wwwroot/qd.yydd.ai \
--email admin@yydd.ai \
-d qd.yydd.ai \
--agree-tos \
--non-interactive
if [ $? -eq 0 ]; then
echo "✅ SSL证书申请成功"
# 2. 启用HTTPS配置
rm -f /www/server/panel/vhost/nginx/qd.yydd.ai.conf
mv /www/server/panel/vhost/nginx/qd.yydd.ai_ssl.conf \
/www/server/panel/vhost/nginx/qd.yydd.ai.conf
# 3. 重载Nginx
nginx -t && nginx -s reload
# 4. 配置自动续期
(crontab -l 2>/dev/null; echo "0 2 * * * certbot renew --quiet --post-hook 'nginx -s reload'") | crontab -
echo ""
echo "🎉 HTTPS配置完成!"
echo "访问地址: https://qd.yydd.ai"
else
echo "❌ SSL证书申请失败"
echo "请检查DNS是否解析成功"
fi
```
使用方法:
```bash
chmod +x /root/setup_https.sh
/root/setup_https.sh
```
---
## 📞 当前状态
### ✅ 已配置
- ✅ 公网服务器Nginx配置
- ✅ 反向代理到5246端口
- ✅ Certbot工具已安装
- ✅ HTTPS配置文件已准备
### ⏳ 待配置
- ⏳ **DNS解析** - 需要在域名管理后台配置
- ⏳ **SSL证书** - DNS解析后自动申请
- ⏳ **HTTPS启用** - 证书申请后启用
---
## 🚀 完成后的访问方式
### 最终推荐访问地址
```
https://qd.yydd.ai
```
**登录账号**:
- 用户名:admin
- 密码:123456
### 功能页面
- 登录页面: https://qd.yydd.ai
- 任务大厅: https://qd.yydd.ai/#/task-hall
- 设计师大厅: https://qd.yydd.ai/#/designer
- 数据分析: https://qd.yydd.ai/#/analytics
- 系统设置: https://qd.yydd.ai/#/settings
---
## 📊 配置进度
| 步骤 | 状态 | 说明 |
|------|------|------|
| 1. 服务器迁移 | ✅ 完成 | 数据和服务已迁移到内网服务器 |
| 2. frp穿透 | ✅ 完成 | 内网5246端口已穿透 |
| 3. Certbot安装 | ✅ 完成 | SSL工具已安装 |
| 4. Nginx配置 | ✅ 完成 | 反向代理已配置 |
| 5. DNS解析 | ⏳ 待配置 | **需要您在域名后台配置** |
| 6. SSL证书 | ⏳ 待申请 | DNS解析后自动申请 |
| 7. HTTPS启用 | ⏳ 待启用 | 证书申请后启用 |
**当前进度**: 60% (4/7步骤完成)
---
## 💡 下一步操作
### 立即需要做的事情
**1. 配置DNS解析**(最重要)
请访问您的域名管理后台(yydd.ai的DNS管理):
添加A记录:
```
主机记录: qd
记录类型: A
记录值: 156.225.27.52
TTL: 600(10分钟)
```
**2. 等待DNS生效**(5-10分钟)
验证命令:
```bash
ping qd.yydd.ai
```
**3. 申请SSL证书**
DNS解析成功后,执行:
```bash
ssh -p 50232 root@156.225.27.52
/root/setup_https.sh
```
**4. 访问测试**
打开浏览器:
```
https://qd.yydd.ai
```
---
**创建时间**: 2025-12-23
**状态**: ⏳ 等待DNS解析配置
**预计完成时间**: DNS配置后10分钟内