内网服务部署有效的 SSL 证书
介绍
如果在内网中运行本地 Web 应用程序,可以使用 IP 地址和端口组合来访问服务,例如 http://192.168.1.32:8096
来访问 Jellyfin。但是如果发生 IP 变更的话,就需要修改 IP 地址,因此可以通过反向代理和本地域名的组合,例如 https://jellyfin.local
或 https://homeassistant.local
来避免 IP 地址变更。这种由于是使用了自己生产的 CA 证书,浏览器会有告警提示。
准备
假定本地运行 Jellyfin 服务器的 HomeLab IP 为 192.168.1.32
,容器名称为 jellyfin,端口为 8096,域名为 jellyfin.example.xyz
域名
自有域名
这里以 Cloudflare
为例
- 在 My Profile/API Tokens 页面生成有
Zone.DNS
权限的 API token - 在 DNS 记录中添加一条 A 记录,名称为
jellyfin
, 内容为192.168.1.32
,代理状态为仅 DNS - reserved IP
没有域名
通过 DuckDNS 注册账号,然后添加域名记录,比如 homelab001
,IP 地址设为 192.168.1.32
,最终的域名为 https://jellyfin.homelab001.duckdns.org
反向代理
通过 docker-compose up -d
启动 Nginx Proxy Manager,然后通过 http://192.168.1.32:81 访问。默认账号如下
1 | Email: admin@example.com |
1 | version: '2' |
在 SSL Certificates
标签页中通过 Let’s Enctrypt 生成通配符证书。
在 Proxy Hosts
中添加一条记录
在 SSL
标签中中选中第一步生成的通配符证书
生效后,就可以通过 https://jellyfin.example.xyz
访问,如果是通过 DuckDNS 的话,通过 https://jellyfin.homelab001.duckdns.org
访问。
总结
至此,为内网服务生成有效的 SSL 证书,并绑定内网服务。如果要在外网访问内部服务可以通过 Zerotier 或者其他类似服务来实现。
---EOF---