# 域名和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分钟内