/etc/letsencrypt/live/happydogg.com# ls
README cert.pem chain.pem fullchain.pem privkey.pem
我目前将证书放在此文件夹中。我的 Node.js 服务器实际上从此目录读取文件。
当我运行 expand 命令时,我需要提供一个 webroot。我不知道那是什么。
$ sudo certbot certonly --expand -d happydogg.com -d www.happydogg.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for www.happydogg.com
Input the webroot for www.happydogg.com: (Enter 'c' to cancel):
我该如何继续?
答案1
似乎您已经设置了要扩展的自动续订证书(最有可能是子域名 www.)。将生成新证书,旧证书将过期(扩展后将收到与当前/旧证书相关的过期电子邮件 - 例如,请参阅此回答其他问题)。
对于您的问题。由于您选择了 HTTP(而非 DNS)方式来确认 let's encrypt 需要确认您拥有(或至少操作)您为证书请求的 FQDN。要查看验证选项,您可以检查 -挑战类型。
通过 HTTP 确认,您可以运行独立服务器(不能有任何其他服务器在默认 http 端口 80/tcp 上运行),或者在正在运行的服务器的情况下网页根目录是服务器寻找上述(虚拟)主机的数据根目录的路径(根据 Web 服务配置,它可能类似于 /var/www)... certbot 会有可写目录.well-known/acme-挑战其中 certbot 将写入用于验证的令牌,并在验证成功后删除令牌(然后令牌的完整路径为http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>
)。
如果你已经在端口上运行了 http 服务,并且无法直接使用此功能,那么你应该设置反向代理来捕获.well-known/acme-挑战路径并将其重定向到其他服务。无论如何,由于您有带证书的有效解决方案,并且只需要扩展,所以这不是您的情况 ;-)。