534 lines
10 KiB
Markdown
534 lines
10 KiB
Markdown
# 域名和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分钟内
|