生成PKCS#12格式证书

前置说明

由于我们的Emby是运行在Truenas上的,域名是同一个,只不过访问端口号不同罢了,所以可以使用同一张证书。

通过查看Emby后台的网络选项可知,Emby自身没有自动配置证书的功能,需要我们手动选择SSL 证书路径,并且仅支持PKCS#12证书。我们需要进行证书格式转换。

这里提醒一下,Truenas本身只给你做了http端口的映射,即8096->9096,并没有https的选项,如果想要启用TLS,我们需要去Truenas的应用编辑界面,勾选Network Configuration下的 Host Network选项,让Emby直接使用Truenas主机网络。这样就可以直接使用Emby自身的端口设置了。

具体操作

  1. 安装Openssl官方是没有给编译好的安装包的,这里用的是别人编译好的可安装程序,如果有能力可以访问官方的repo自行编译安装。安装的时候会提示你选择.dll文件的存放位置,我选的第二个bin
  2. 配置环境变量。默认在C:\Program Files\OpenSSL-Win64\bin目录。
  3. 下载Truenas生成好的证书。在Truenas的用户凭证->证书->证书处,可以下载你之前申请好的证书。下载后得到一个.key和一个.crt文件,随便新建个目录把它俩放一起。Truenas如何申请证书请见以往blog给Truenas远程访问添加SSL证书
  4. 使用Openssl进行证书格式转换。在证书文件所在文件夹下打开cmd,输入openssl pkcs12 -export -out emby.p12 -inkey truenas.key -in truenas.crt。其中emby.p12是要转换出来PKCS#12证书文件名,truenas.keytruenas.crt分别是你下载下来的两张Truenas证书。
  5. 设定证书密码。执行完上面的命令后就会提示你设置的,自己设就行,别忘了,这个密码之后要填在Emby里。

安装证书

将你之前得到的emby.p12文件传到Truenas池的对应位置,Emby里自定义 SSL 证书路径,然后在下面的证书密码处填入你刚才设置的密码即可。记得还要在外部域一栏填入你自己的域名。安全连接模式可按个人需求选择。

关于证书更新

这个想要实现大概就只能自己写脚本了,我的建议是去问问ChatGPT,没准它能写出来,我懒的折腾了。

参考链接

将证书文件转换为 PKCS#12 格式
生成 PKCS#12 文件