无需购买域名即可在 apache2 上设置 HTTPS

无需购买域名即可在 apache2 上设置 HTTPS

我已经使用 Debian 9 Stretch(Raspian 是树莓派)上的 apache2 成功创建了一个站点(2 个虚拟主机,在同一个域名下还有另一个站点)。

它存储在这个路径:/var/www/html/www.mysite.ddns.net/www/。我可以通过以下链接访问它:mysite.ddns.net

现在我想建立一个 https 连接,所以我尝试使用 Let's encryptCertbot

不幸的是,当我运行命令时sudo certbot --apache,它给出了这个错误:

Obtaining a new certificate
Performing the following challenges:
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.
Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA.

哪里有问题?

答案1

由于您的网站的 URL 与您在 Apache 中使用的根目录不完全匹配,因此自动certbot --apache模式可能无法工作。

一种选择是手动指定用于证书的域名以及 Web 服务器的根目录。

certbot certonly --webroot -w /var/www/html/www.mysite.ddns.net/www/ -d mysite.ddns.net

此命令使用/var/www/html/www.mysite.ddns.net/www/作为 Web 服务器的根目录。Certbot 会将临时文件(您的域名独有的)放在名称目录中.well_known,然后尝试读取这些文件http://mysite.ddns.net/.well_known。如果找到这些文件,您将获得证书。

证书文件将放置在 中/etc/letsencrypt/live/mysite.ddns.net/

要配置 Apache 以使用这些证书,您可以使用以下命令将它们添加到 Apache 站点配置中:

SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.ddns.net/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mysite.ddns.net/fullchain.pem

确保还运行a2enmod ssl以确保 Apache 的 SSL 模块已启用。

还有一些 Certbot 示例可供查看用户指南

相关内容