Files
pve/Plex-IPv6-Remote-configure.md
T
2023-11-19 20:36:18 +08:00

3.8 KiB
Raw Blame History

没有IPv4公网,Plex 设置 IPv6访问

准备条件

  • domain name 你需要有域名一枚
  • 公网IPv6地址 IPv6 address
  • 证书获取工具 推荐使用 acme.sh

主机环境 Host is PVE

安装 acme.sh Install acme.sh

  • 命令

      curl https://get.acme.sh | sh -s email=my@example.com
    
  • 添加 acme.sh 启动环境,安装 acme.sh 到 home 目录下

    ~/.acme.sh/

  • 并创建 一个 shell 的 alias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

  • 启用环境

    source .bashrc

生成证书

  • 手动 dns 方式

    这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可	完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法	自动更新证书,每次都需要手动再次重新解析验证域名所有权。
    
    acme.sh --issue --dns -d mydomain.com \
     --yes-I-know-dns-manual-mode-enough-go-ahead-please
    

    然后, acme.sh 会生成相应的解析记录显示出来, 你只需要在你的域名管理面板中添加这条 txt 记录即可.

    等待解析完成之后, 重新生成证书:

      acme.sh --renew -d mydomain.com \
      --yes-I-know-dns-manual-mode-enough-go-ahead-please
    
    

    注意第二次这里用的是 --renew

    dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证.

​

  • api 认证方式

    acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成.

    以 dnspod 为例, 由于我用的 dnspod 的域名服务。 你需要先登录到 dnspod 账号, 生成你的 api id 和 api key, 都是免费的. 然后:

    export DP_Id="1234"
    
    export DP_Key="sADDsdasdgdsf"
    
    acme.sh --issue --dns dns_dp -d aa.com -d www.aa.com
    
    

    证书就会自动生成了. 这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了. 直接生成就好了:

    acme.sh --issue -d mydomain2.com --dns  dns_dp
    
  • copy/安装 证书

    注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

    正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

    Apache example:

    acme.sh --install-cert -d example.com \
    --cert-file      /path/to/certfile/in/apache/cert.pem  \
    --key-file       /path/to/keyfile/in/apache/key.pem  \
    --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
    --reloadcmd     "service apache2 force-reload"
    

Plex 证书准备

  • 自定义域支持 PKCS #12 文件路径,其中包含启用 TLS 的证书和私钥。

    由于 Plex 需要 PKCS#12 证书,我们需要把通过 acme.sh 获取的证书转换一下。

    openssl pkcs12 -export -out yourdomain.pfx -inkey yourdomain.key -in fullchain.cer

​ 说明:

​ ​ openssl pkcs12 --export --out 我们需要的证书 --inkey 刚获取的证书密钥 --in fullchain.cer (这个不用 变,用 acme.sh 获取的证书) ​

  • Plex 相关设置

    进入设置 —— 网络 ——

    • 启动支持 IPv6 的服务器选中☑️ check in

    • 自定义证书位置

      • 这里填写上面一步转换获取的 pkcs#12 的证书保存位置 /your/dir/yourdomain.pfx
    • 自定义证书加密密钥

      • 这里填写 acme.sh 的证书私钥 /your/domain/key
    • 自定义证书域

      • 你的域名 yourdomain.com
    • 自定义服务器访问 URL