【问题标题】:How does one automate Let’s Encrypt certificate renewal for Lighttpd? [closed]如何为 Lighttpd 自动更新 Let's Encrypt 证书? [关闭]
【发布时间】:2016-05-12 22:44:59
【问题描述】:

在运行 Lighttpd 的 Linux 系统上,如何自动更新 Let's Encrypt 证书的证书。 Let's Encrypt 为 Apache 2 和 NGINX 提供了很棒的脚本,但不是 Lighttpd,它更适合 Raspberry Pi 或旧盒子等小型系统。

【问题讨论】:

    标签: raspberry-pi lighttpd lets-encrypt


    【解决方案1】:

    Danny Tuppeny 提供了一个简单的脚本,您可以在他的博客帖子 Installing Lighttpd, PHP 7 and LetsEncrypt on a Raspberry Pi (Raspbian Jessie Lite) 上运行一个很好的开始

    # Renew cert
    # updated for name change [mscalora]
    letsencrypt-auto renew
    
    # Rebuild the cert
    pushd /etc/letsencrypt/live/<your-domain-here>/
    cat privkey.pem cert.pem > combined.pem
    popd
    
    # Reload
    /etc/init.d/lighttpd force-reload
    

    可以在我的 Gist 中找到基于最新 Let's Encrypt 脚本包的更通用版本:letsencrypt-update-lighttpd。此脚本将处理带有证书的多个域。

    Danny Tuppeny 的博文也包含有关原始设置的信息。

    【讨论】:

      【解决方案2】:

      有一个通用的standalone 验证器(插件)适用于任何网络服务器。但是,如果您的服务器处理端口 80 上的请求,您将面临 certbots 说的问题 “此插件需要绑定到端口 80 才能执行域验证,因此您可能需要停止现有的网络服务器。” 因此,如果您必须为网络服务器更新证书,它会在域验证期间停机。 如果您不关心此类停机时间,请按原样使用独立插件。

      但是,有一个解决方案可以帮助您避免停机:

      1. 使用参数运行certbot:--standalone --http-01-port 123456 - 插件的网络服务器将在端口 12346 而不是 80 上启动,因此您无需停止网络服务器。

      2. 设置并运行一个非常轻量级的中间反向代理,例如Tinyproxy

      yum -y install tinyproxy --enablerepo='epel';

      将其配置为监听 12345 端口。其配置如下所示:

      User tinyproxy
      Group tinyproxy
      
      Port 12345
      Timeout 6000
      MaxClients 100
      MinSpareServers 5
      MaxSpareServers 20
      StartServers 10
      MaxRequestsPerChild 0
      BindSame yes
      DisableViaHeader Yes
      ConnectPort 80
      ConnectPort 12346
      AddHeader "X-Forwarded-Proto" "http"
      ReversePath "/" "http://127.0.0.1/"
      ReversePath "/.well-known/acme-challenge/" "http://127.0.0.1:12346/.well-known/acme-challenge/"
      ReverseOnly Yes
      ReverseMagic Yes
      

      它应该监听 HTTP 流量并在两个网络服务器之间重定向请求。代理过滤流量并将包含“/.well-known/acme-challenge/”的 Let's Ecnrypt 验证请求重定向到插件的网络服务器到端口 12346,并将常规 HTTP 请求重定向到您的网络服务器到端口 80。

      1. 使用 iptables 创建 HTTP 流量重定向以反向代理从端口 80 到端口 12345 并接受新端口上的流量:

      iptables -I INPUT -p tcp -m tcp --dport 12346 -j ACCEPT iptables -I 输入 -p tcp -m tcp --dport 12345 -j 接受 iptables -t nat -I PREROUTING -p tcp -m tcp ! -s 127.0.0.1/32 --dport 80 -j 重定向 --to-ports 12345

      1. 验证完成后立即删除上述防火墙规则并停止代理服务器。

      这就是您获得自动 Let's Encrypt 证书更新的全部内容,无需停机,也无需更改您的网络服务器内容。

      您可以下载脚本generate-ssl-cert.sh 实施解决方案并根据您的需要采用它。实际上这个脚本是自动化包的一部分,称为Let's Encrypt SSL Add-On。包是Cloud Scripting 场景。

      【讨论】:

        猜你喜欢
        • 2021-06-20
        • 2018-11-30
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 2020-07-30
        • 2018-09-16
        • 1970-01-01
        • 2017-12-13
        相关资源
        最近更新 更多