如何在nginx服务器上干净地处理letsencrypt的首次使用?

时间:2018-04-10 22:52:24

标签: nginx lets-encrypt

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

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

(目前我正在使用webroot auth方法,但我没有和它结婚。这里的目标是提出一个在初始设置期间做正确事情的配置)

1 个答案:

答案 0 :(得分: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"

您可以完全编写脚本,因此不会感到头疼。