通过 plex 设置中导入证书实现 https 访问,不使用 nginx 进行反向代理。
1. 准备证书#
我的证书申请方法是通过 acme 生成,方法之前文章详细写过,可以参考https://tyuans.com/linux%e4%bd%bf%e7%94%a8acme%e7%94%b3%e8%af%b7%e8%af%81%e4%b9%a6/
2. 转换证书#
plex 添加证书需要.pfx 文件,而 acme 生成的是.key 以及.cer 文件,因此我们需要转换,通过 openssl 命令。
#首先进入到acme生成的证书目录中:
cd ~/.acme/youdomain.com
#youdomain.com是你的域名,-out是指定输出pfx文件名称,-inkey是导入key,-in 是导入cer证书
openssl pkcs12 -export -out youdomain.com.pfx -inkey youdomain.com.key -in youdomain.com.cer
#然后输入秘钥,也就是密码,一定要输入
3. 将证书拷贝到 plex 能找到的文件夹内#
我的 plex server 是通过 docker 建立的,因此目录是映射过去的。详细搭建方法可以参考https://tyuans.com/docker%e5%ae%89%e8%a3%85plex/
将 pfx 文件复制到映射到容器的 /video 目录中,我的是 /usr/plex/video 中
#确保自己在.acme的对应域名文件夹下进行复制操作
cp youdomain.com.pfx /usr/plex/video/
复制完成后任意资料库 - 编辑 - 添加文件夹中,可以选路径,在窗口中可以看到证书已经在 /video 下出现。
4.plex 设置#
进入设置 - 网络 - 显示高级选项下:
自定义证书位置:/video/youdomain.com.pfx
自定义证书加密密钥:刚才转换证书时设置的密码输入
自定义证书域:就是你的域名youdomain.com
自定义服务器访问 URL:两个分别是 http://youdomain.com:32400/web,https://youdomain.com:32400/web
#端口根据自己情况可以修改
5. 脚本更新#
证书 3 个月更新,我们需要写个脚本每段时间将新续期下来的证书转换并拷贝到 plex 的映射文件夹中,绝对路径记得改一下。
就是将刚才转换和复制的命令放一起,设置一个定时任务,定时任务根据申请证书的时间算算,我是每月 1 号执行。不会的话用在线网站算算。https://tool.lu/crontab/
vim plexpfx.sh
openssl pkcs12 -export -out /root/.acme/youdomain.com/youdomain.com.pfx -inkey /root/.acme/youdomain.com/youdomain.com.key -in /root/.acme/youdomain.com/youdomain.com.cer
cp /root/.acme/youdomain.com/youdomain.com.pfx /usr/plex/video/
#加运行权限
chmod +x plexpfx.sh
crontab -e
0 1 1 */1 * /root/cronsh/plexpfx.sh