1. HTTPS 证书到底是干嘛的?(核心原理) HTTPS 证书(SSL 证书)其实就两样东西的组合:“身份证” + “密码本”。 场景 A:没有证书 (HTTP) —— “裸奔的信件” 你(浏览器)给服务器(Emby)
【必学】理解什么是 HTTPS
1. HTTPS 证书到底是干嘛的?(核心原理)
HTTPS 证书(SSL 证书)其实就两样东西的组合: “身份证” + “密码本” 。
场景 A:没有证书 (HTTP) —— “裸奔的信件”
你(浏览器)给服务器(Emby)写了一封信:“我的密码是 123456”。
- 这封信是 透明的 。
- 路由节点、运营商、隔壁蹭网的黑客 ,每个人都能在传输过程中看到这封信的内容。
- 结果: 极其不安全。
场景 B:有证书 (HTTPS) —— “带锁的保险箱”
你给服务器写信,但是这次流程变了:
1. 查验身份(身份证作用):
- 你访问 emby.com 。
- 服务器先把 证书 甩给你看。
- 你的浏览器会去核查颁发机构(比如 Let's Encrypt): “这孙子真的是 emby.com 吗?”
- 机构确认: “是的,我担保。” —— 防止了钓鱼网站冒充。
2. 交换钥匙(密码本作用):
- 服务器给你的证书里,带着一把\*\*“公钥”\*\*(你可以理解为一把只能锁不能开的锁)。
- 你写好信,用这把锁锁上,发给服务器。
- 神奇的地方来了: 只有服务器手里那把\*\*“私钥”\*\*才能打开这把锁。
- 哪怕黑客截获了数据包,他拿到的是一个打不开的铁盒子,里面全是乱码。
2. 传统模式:为什么要“上传到特定目录”?
在没有反向代理(1Panel/Nginx)之前,每个服务都是\*\*“自立门户”\*\*的。
假设你有三个服务:
- Emby (8096端口)
- Alist (5244端口)
- WordPress (8080端口)
如果你想让它们都安全(HTTPS),你需要做这些繁琐的事:
1. 去阿里云申请证书,下载下来(得到 .crt 和 .key 文件)。
2. 登录 Emby 后台,找到“安全设置”,把文件上传进去(或者通过 SSH 传到 /var/lib/emby/ssl )。
3. 登录 Alist 配置文件,把文件路径填进去。
4. 登录 WordPress 的 Nginx 配置,把路径填进去。
痛苦点在于:
- 格式不同: 有的要 .pem ,有的要 .pfx ,有的要 .crt ,你得不停转换格式。
- 更新地狱: 免费证书通常 90天过期 。每过3个月,你就要把上述流程全部走一遍,传到每一个服务的每一个特定目录下。漏了一个,那天那个服务就访问不了。
3. 进阶模式:反向代理如何“一步到位”?
现在你用了 1Panel(反向代理) ,架构变成了\*\*“SSL 卸载 (SSL Termination)”\*\*。
这就好比公司请了一个 专业的安保前台 。
- **外部访问(你 <-> 1Panel):** 必须加密 (HTTPS) 。
- 所有的加密、解密工作,全部由 1Panel 这个“前台”在门口一次性处理完。
- 证书只存在 1Panel 里 ,你只需要在 1Panel 的界面上点一下“申请证书”,它会自动续期,自动部署。
- **内部转发(1Panel <-> Emby/Alist):** 可以是明文 (HTTP) 。
- 前台解密确信安全后,把解密后的数据(明文),通过局域网内部网线,传给后面的 Emby。
- 因为这是在你家极空间内部(Docker 网络或虚拟机网络),外部黑客进不来,所以这里跑 HTTP 是安全的,而且 速度更快 (省去了后端服务重复解密的 CPU 消耗)。

结论与建议
不要去管那些“特定目录”了。
在你的 HomeLab 中:
1. 后端服务(Emby/Wiki等): 全部只开 HTTP,不要在它们内部配置任何证书。
2. 中间层(1Panel): 申请一个通配符证书(比如 *.你的域名.com )。
3. 配置: 在 1Panel 的反向代理设置里勾选“开启 HTTPS”和“强制 HTTPS”。
这就是“一步到位”。 所有的加密压力都在 1Panel(虚拟机)上,后端服务一身轻松,你也一身轻松。