【问题标题】:How can I cleanly handle the first use of letsencrypt on an nginx server?如何干净利落地处理在 nginx 服务器上首次使用letsencrypt?
【发布时间】:2018-10-29 21:33:38
【问题描述】:

我使用letsencrypt/certbot 来管理Nginx 使用的证书。我发现,在设置服务器时,我遇到了先有鸡还是先有蛋的情况:nginx 必须工作以提供.well-known/acme-challenge 目录,但是如果配置的 ssl 证书尚不存在,则 nginx 拒绝启动。

到目前为止,我已经通过从 nginx 服务器块中手动编辑 ssl、启动它、第一次运行 certbot,然后恢复更改来解决这个问题。我想知道是否有更清洁的方法。

(目前我正在使用 webroot auth 方法,但我并没有与之结婚。这里的目标是提出一个在初始设置期间执行正确操作的单一配置)

【问题讨论】:

    标签: nginx lets-encrypt


    【解决方案1】:

    由于您知道证书的最终名称和目的地,您可以生成一个自签名证书,让 nginx 运行,然后运行 ​​certbot 并将自签名替换为正确的证书。 ACME 质询应通过 HTTP 解决。

    生成自签名证书的代码。不用担心太多,除了keyoutout 参数。

    openssl req -x509 -nodes -days 365 -newkey rsa:4096 \
        -subj "/C=UK/ST=England/L=London/CN=www.example.com" \
        -keyout "/path/to/your/key.cer" \
        -out "/path/to/your/certificate.cer"
    

    您可以完全编写脚本,这样您就不会头疼了。

    【讨论】:

      猜你喜欢
      • 2015-10-14
      • 2012-11-28
      • 2016-03-27
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多