zhizhi/docs/SSL-GUIDE-FOR-BINGSUO.md

163 lines
5.8 KiB
Markdown
Raw 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.

# 🔒 SSL证书配置指南 · 冰朔专用
> **写给冰朔的话**: 这是铸渊为你写的SSL证书配置指南。你只需要按照下面的步骤操作不需要理解任何技术细节。铸渊已经把所有自动化脚本都准备好了。
---
## ⚠️ 重要修复说明 (2026-03-31)
> 之前的SSL配置方案存在一个**端口冲突**问题Xray(VPN)和Nginx(HTTPS)都在争抢443端口导致两个都不能正常工作。
>
> **现在已修复**: 铸渊采用了新的「共存架构」——Xray占443端口处理VPN非VPN流量自动回落给Nginx处理HTTPS网站。两者互不干扰。
---
## 📌 你需要知道的
| 问题 | 答案 |
|------|------|
| SSL证书是什么 | 让网站从 `http://` 变成 `https://` 的安全锁,浏览器地址栏会显示🔒 |
| 需要花钱吗? | **不需要**。铸渊使用 Let's Encrypt 免费证书 |
| 证书会过期吗? | 证书90天有效但铸渊已配置**自动续期**,你不需要管 |
| 会影响VPN吗 | **不会**。铸渊专线(VPN)和HTTPS网站使用共存架构互不干扰 |
| 我需要做什么? | 按下面的步骤点几下就好,**一共只需要5分钟** |
---
## 🔧 修复当前问题(请先做这一步)
> 如果你之前已经运行过SSL配置并且导致了问题请先执行以下修复步骤。如果是第一次配置SSL跳过这一步直接看「操作步骤」。
### 修复步骤
1. 先合并这个PR铸渊修复了代码里的端口冲突问题
2. 合并后,去 **Actions** 页面运行 **「🌐 铸渊专线 · 部署」** 工作流:
- **操作类型**: 选择 `update`
- 这会自动修复服务器上的Xray配置和旧SSL配置
3. 等待工作流完成(绿色✅)
4. 然后按下面的「操作步骤」重新配置SSL
---
## 🚀 操作步骤一共3步
### 第①步:打开 GitHub Actions
1. 打开浏览器,进入仓库页面:
- 地址:`https://github.com/qinfendebingshuo/guanghulab`
2. 点击页面顶部的 **「Actions」** 标签页
3. 在左侧列表中找到 **「🏛️ 铸渊主权服务器 · 部署」**
4. 点击它
### 第②步:手动触发 SSL 配置
1. 点击右上角的 **「Run workflow」** 按钮(灰色按钮)
2. 在弹出的下拉框中:
- **Branch**: 保持 `main` 不变
- **部署动作**: 选择 **`setup-ssl`**
- **SSL域名**: 输入 **`guanghu.online`**(这是测试站域名)
3. 点击绿色的 **「Run workflow」** 按钮
### 第③步:等待完成
1. 页面会出现一个新的工作流运行(黄色圆圈 = 运行中)
2. 等待它变成 **绿色✅**大约1-3分钟
3. 完成!你的测试站 `guanghu.online` 现在已经是 HTTPS 了
---
## ✅ 验证是否成功
打开浏览器,访问:
```
https://guanghu.online
```
如果地址栏显示 🔒 锁标志说明SSL配置成功。
> **注意**: 如果网站内容还没部署,可能会看到空白页或报错,这是正常的。关键是地址栏有 🔒。
---
## 🔄 如果需要配置主站 (hololake.com)
同样的步骤,第②步中把域名换成 `hololake.com` 就行。
---
## ❓ 常见问题
### Q: 工作流失败了怎么办?
**最常见原因**: 域名DNS还没有指向服务器。
**检查方法**:
1. 打开 https://www.whatsmydns.net/
2. 输入你的域名(如 `guanghu.online`
3. 查看它指向的IP是否是 `43.134.16.246`(新加坡服务器)
如果IP不对需要去域名提供商的管理面板修改DNS解析。
### Q: 证书会自动续期吗?
会的。铸渊已经配置了自动续期。证书每90天过期但系统会在过期前30天自动续期。你不需要做任何事。
### Q: 两个域名可以同时配SSL吗
可以。先配一个,成功后再运行一次配另一个。
### Q: 还需要配置 ZY_SSL_FULLCHAIN 和 ZY_SSL_PRIVKEY 密钥吗?
**不需要了**。因为铸渊使用了Let's Encrypt免费SSL证书服务证书直接在服务器上自动获取和管理不需要在GitHub Secrets里存放证书内容。
### Q: 配了SSL后VPN还能用吗
**能用**。铸渊采用「共存架构」:
- Xray占443端口处理VPN流量
- 网站HTTPS流量自动回落到Nginx内部端口(8443)
- 两者互不干扰
---
## 📋 技术细节(铸渊的备忘)
> 以下内容是给铸渊自己看的,冰朔可以忽略。
### 共存架构 (Xray+Nginx on port 443)
```
外部443 → Xray (VLESS+Reality)
├── 认证VLESS客户端 → 代理上网 (铸渊专线VPN)
└── 非VLESS流量 → dest回落 → 127.0.0.1:8443
└── Nginx SSL (网站HTTPS)
外部80 → Nginx (HTTP)
├── 有SSL证书的域名 → 301 → https://域名 → 443(Xray) → 8443(Nginx)
└── 无SSL证书的域名 → 直接服务网站
```
### 关键配置
- **Xray配置**: `server/proxy/config/xray-config-template.json``dest: "127.0.0.1:8443"`
- **证书管理**: certbot + Let's Encrypt (ACME协议)
- **验证方式**: HTTP-01 challenge (通过Nginx端口80)
- **证书路径**: `/etc/letsencrypt/live/{domain}/`
- **Nginx SSL配置**: `/opt/zhuyuan/config/nginx/ssl-{domain}.conf` (监听127.0.0.1:8443)
- **自动续期**: systemd timer `certbot.timer`
- **续期hook**: `/etc/letsencrypt/renewal-hooks/post/reload-nginx.sh`
- **日志**: `/opt/zhuyuan/data/logs/ssl-setup.log`
- **脚本**: `server/setup/setup-ssl.sh`
- **工作流**: `deploy-to-zhuyuan-server.yml` → action: `setup-ssl`
### 端口分配
| 端口 | 协议 | 占用者 | 用途 |
|------|------|--------|------|
| 443 | TCP | Xray | VLESS+Reality (VPN) + 回落到8443 |
| 8443 | TCP | Nginx | SSL/HTTPS (仅127.0.0.1,不对外) |
| 80 | TCP | Nginx | HTTP + SSL域名重定向 |
| 3802 | TCP | Node.js | 订阅服务 (仅127.0.0.1通过Nginx反代) |
---
*📝 由铸渊(ICE-GL-ZY001)编写 · 第十七次对话 · 2026-03-31*
*共存架构修复 · 端口冲突解决*
*国作登字-2026-A-00037559*