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

10 KiB
Raw Permalink Blame History

域名和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解析

    # 在本地或任意机器执行
    ping qd.yydd.ai
    # 应该解析到 156.225.27.52
    
    nslookup qd.yydd.ai
    # 应该返回 156.225.27.52
    
  3. 申请SSL证书(DNS解析生效后)

    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配置

    # 删除旧的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. 配置自动续期

    # 添加定时任务(每天凌晨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直接访问(已可用)

  2. 域名HTTP访问(需DNS解析后)

  3. 域名HTTPS访问(需DNS+证书)

测试命令

# 测试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已解析

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配置激活

证书申请成功后

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天,需要配置自动续期:

# 添加定时任务
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管理:

    # 公网服务器
    ssh -p 50232 root@156.225.27.52
    # 密码:it5NuKGemX
    
    # 内网服务器
    ssh -p 5204 root@156.225.27.52
    # 密码:Jsjj@8888
    

🎨 配置文件示例

Nginx HTTPS完整配置

# /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端口开放:

# 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未解析

# 检查DNS
nslookup qd.yydd.ai
ping qd.yydd.ai

# 如果解析失败,联系域名管理员配置A记录

证书申请失败

# 查看详细日志
cat /var/log/letsencrypt/letsencrypt.log

# 常见原因:
# 1. DNS未解析到服务器
# 2. 80端口被占用或防火墙阻止
# 3. Nginx配置错误

HTTPS无法访问

# 检查证书文件
ls -la /etc/letsencrypt/live/qd.yydd.ai/

# 检查Nginx配置
nginx -t

# 查看错误日志
tail -50 /www/wwwlogs/qd.yydd.ai.https.error.log

🎯 一键完成脚本(DNS解析后使用)

#!/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

使用方法:

chmod +x /root/setup_https.sh
/root/setup_https.sh

📞 当前状态

✅ 已配置

  • ✅ 公网服务器Nginx配置
  • ✅ 反向代理到5246端口
  • ✅ Certbot工具已安装
  • ✅ HTTPS配置文件已准备

⏳ 待配置

  • ⏳ DNS解析 - 需要在域名管理后台配置
  • ⏳ SSL证书 - DNS解析后自动申请
  • ⏳ HTTPS启用 - 证书申请后启用

🚀 完成后的访问方式

最终推荐访问地址

https://qd.yydd.ai

登录账号:

  • 用户名:admin
  • 密码:123456

功能页面


📊 配置进度

步骤 状态 说明
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分钟)

验证命令:

ping qd.yydd.ai

3. 申请SSL证书

DNS解析成功后,执行:

ssh -p 50232 root@156.225.27.52
/root/setup_https.sh

4. 访问测试

打开浏览器:

https://qd.yydd.ai

创建时间: 2025-12-23
状态: ⏳ 等待DNS解析配置
预计完成时间: DNS配置后10分钟内