如何在域指向运行 Ubuntu 20.04 的 Hostinger VPS Apache 服务器的子域上安装 SSL 证书

如何在域指向运行 Ubuntu 20.04 的 Hostinger VPS Apache 服务器的子域上安装 SSL 证书

使用 Certbot,我为我的域安装了 LetsEncrypt SSL 证书,该证书指向运行 Ubuntu 20.04 的 Hostinger Apache 服务器。我在为我的子域安装证书时遇到问题。我创建了一条指向我的服务器 IP 地址的 A 记录(名称:www)。这是在删除 CNAME 记录(名称:www 目标:mydomain.com)之后发生的。我查看了相关帖子并尝试了“certbot certonly --standalone --expand -d mydomain.com -dwww.mydomain.com)。我使用我的域名代替“mydomain.com”。这不起作用。任何帮助,将不胜感激。

首先,感谢您对这个问题的调查。就可访问性而言,我假设您的意思是当我在地址栏中键入域名或子域名时会显示该网站:在我的情况下,这两种情况都会显示该网站。

就端口 80 而言,运行 netstat 后,我​​看不到端口 80 正在哪里使用,如果它确实在使用的话。但是,“certbot certonly --standalone ...”命令确实报告“无法绑定 TCP 端口 80,因为它已被该系统上的另一个进程使用”。我不确定如何停止端口 80 以及停止端口 80 是否将允许“certbot certonly --standalone ...”安装证书。

答案1

如果您尝试扩展证书,则需要确保原始域和新域均可访问,因为 certbot 还将重新验证“现有”域。

还要确保您的 DNS 更改已通过使用全局传播像这样的网站,虽然它可能适合您,但 Let's Encrypt 服务器位于世界的不同地方,可能需要更多时间才能看到更改,具体取决于您为 DNS 区域设置的 TTL 和刷新时间。

如果这对于现有域和新域都是正确的,请确保当您以独立模式(例如 Web 服务器)启动 certbot 时,没有其他进程正在侦听端口 80。

您说您在“安装证书”时遇到问题 - 使用您提供的选项,您只会请求证书,但不会将其安装在您的网络服务器中。如果证书已正确创建,但未安装,则需要确保您使用的服务能够识别该证书,方法是将其指向正确的文件或将文件复制到正确的位置。如果您使用 apache 或 nginx 来提供您想要通过 ssl 保护的内容,那么最好使用通过 certbot 为您自动执行此操作的插件。

您可以像这样安装它们:(删除最适合您的行的前导 #。)

#sudo apt-get install python3-certbot-apache # For apache on debian / ubuntu 
#sudo apt-get install python3-certbot-nginx # For nginx on debian / ubuntu 
#sudo yum install python3-certbot-apache # For apache on centos / fedora
#sudo yum install python3-certbot-nginx # For nginx on centos / fedora

然后你可以简单地手动运行certbot,它会检测 apache 或 nginx 配置并询问你想要在哪些域中使用 ssl。如果一切正常,您可以启用 systemd 计时器来自动更新证书。欲了解更多相关信息看这里

相关内容