由于 Apache“重定向 /domain.com”,Certbot 无法检查质询

由于 Apache“重定向 /domain.com”,Certbot 无法检查质询

所以这个服务器完全混乱了,但这不是重点。

我运行了 certbot,但失败了。检查了 vhost 的 80 端口。它有全面重定向。

看起来这不会造成问题,对吧?其实是的,我将其注释掉,certbot 运行没有问题。

因此,我尝试为 certbot 创建一个新 vhost。“ServerName domain.com.well-known Directory /var/www/certbot”然后运行 ​​certbot 并指定新目录。没有成功,它说它需要是网站的根目录。

我也尝试了其他方法,但都不起作用。我不知道该怎么办,我甚至不知道重定向是否有必要,但我真的不能乱用它。如果这是唯一的方法,那么我们必须这样做,使用年度证书并手动更改它们或做其他事情。

答案1

Certbot 不会为仅支持端口 80 的 vhost 颁发证书,因为端口 80 实际上是非安全 http 协议。

您需要将端口 443 添加到现有的 https vhost,除非您通过使用 --apache 选项调用 Certbot 来使用 Certbot Apache2 插件。

  <VirtualHost *:80>
   ServerName www.example.com
  </VirtualHost>

  <VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
  </VirtualHost>

不确定是否理解您关于重定向的观点。但不要指望 certbot 会为重定向颁发证书,因为证书与主机名 (url) 相关联,并且还会在颁发证书之前跟踪路由域。

但如果你谈论的是重定向 www.example.comhttps://example.com,您可以将其添加到您的 *:80 vhost。

Redirect / https://www.example.com/

忘记那些众所周知的事情,使用 certbot 指出你的根 webdir,因为没有必要。只要你想要的主机名上有 ssl 证书,你的 vhost 也应该绑定端口 *:443 参数,并且已经是一个启用了 apache2 的站点,a2enssite <your-site.conf / your-site.vhost>Certbot 就会完成剩下的工作。

实际上我刚刚意识到,即使没有竞标 443 端口,Certbot 也有可能检测到您的 Apache2 站点并为您完成这项工作,如果我错了请纠正我,因为我已经很久没有使用它了。

但是只要您的主机名/域名/名称/url 随意调用它,可以在浏览器中访问或通过 ping 您的 url 返回 ip(在您的本地网络之外),您就不必进行任何编辑。

别忘了使用 Certbot --apache 选项。这将使任务变得更容易。您需要先安装软件包(sudo apt install python3-certbot-apache)或类似的东西。

相关内容