使用Letstencrypt

时间:2016-12-13 04:33:41

标签: ssl certbot plex

我需要一点方向。我希望使用我在使用Plex Media Server的No-IP生成的主机名获取https。我可以通过我的主机名连接到我的plex媒体服务器,我只想让letsencrypt为它生成安全的SSL证书。

我运行以下命令:

sudo su -
./certbot-auto  --webroot "/var/lib/plexmediaserver/Library/Application Support" -d example.com

并返回以下错误:

letsencrypt: error: unrecognized arguments: /var/lib/plexmediaserver/Library/Application Support

如果我运行以下命令:

sudo su -
./certbot-auto certonly --standalone -d example.com

它返回以下错误:

授权程序失败。 example.com(tls-sni-01):urn:acme:错误:unauthorized ::客户端缺少足够的授权:: TLS-SNI-01质询的验证证书不正确。从1.2.3.4:443请求e1b6ab6aa7251a908a0f2fc1dd6a3597.beae34c6504c7db8412d92c3f1885e08.acme.invalid。收到的证书包含'* .0beedbf17c2042c089ef5e20952e62c8.plex.direct'

我真的不知道这是否是正确的webroot。我完全不知道从哪里开始。这是我拼图的最后一步,任何方向都会有所帮助。

注意:这是在Rasberry pi 3上运行。

1 个答案:

答案 0 :(得分:1)

我得到了它的工作。我写了一篇关于整个端到端设置的博客。我知道这可以帮助许多人做同样的事情。

检查出来: wesleysinstructions.weebly.com

修改

我假设您已经有plex设置,所以如果不看链接,我将跳过该部分。

  1. 转到No-IP(或您要用作主机名的任何其他服务)并设置主机名

    • 登录仪表板。
    • 在侧栏上点击"动态DNS"
    • 选择"主机名"
    • 在该页面上,点击按钮"添加主机名" - 填写它,你现在有一个主机名(注意:这需要大约5分钟才能生效)
  2. 安装动态DNS客户端,将您的plex IP地址(总是在变化)链接到No-Ip.com上的主机名

    • 注意:他们在网站上有关于如何执行此操作的说明
  3. 在您的路由器端口转发443/80到您正在托管plex的地方

    • 访问portforward.com以获取有关确切路由器的说明
  4. SSH到您的plex服务器

  5. 安装" certbot"作者:LetsEncrypt
  6. mkdir ~/certs cd ~/certs wget https://dl.eff.org/certbot-auto sudo chmod a+x certbot-auto sudo ./certbot-auto certonly --standalone -d <hostname>

    • 注意:这将尝试验证443以上的主机。
    • 如果一切顺利,你应该收到类似这样的信息:

    Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/<hostname>/fullchain.pem. Your cert will expire on..

    1. 设置反向Nginx代理以提供证书。 sudo apt-get update sudo apt-get install nginx -y sudo unlink /etc/nginx/sites-enabled/default sudo nano /etc/nginx/sites-available/reverse
    2. &#34;反向&#34;文件设置如下:

          server {
              listen       80;
              server_name  <hostname>;
              rewrite https://$host$request_uri? permanent;
      
              listen 443 ssl;
      
              ssl_certificate /etc/letsencrypt/live/<hostname>/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/live/<hostname>/privkey.pem;
              #root /usr/share/nginx/html;
              #index index.html index.htm;
              ssl_stapling on;
              ssl_stapling_verify on;
      
              location / {
                      proxy_pass http://127.0.0.1:32400;
                      proxy_set_header Host $host;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
          }
      
      • 注意:这假设您使用端口32400进行默认的plex设置。

      完成设置

      sudo ln -s /etc/nginx/sites-available/reverse /etc/nginx/sites-enabled/reverse
      sudo nginx -t
      sudo service nginx restart
      

      希望我没有输入任何错误。如果我做了至少这是设置过程,你需要经历。