ISPConfig:Let’s Encrypt 生成 SSL 证书的问题

提示:现在很多平台虚拟服务器(VPS)都有安全组规则,所以必须先配置出/入站规则,放行443端口!

当我在全新的Ubuntu 20.04操作系统安装完成ISPConfig3.2.7版本后,就开始想把旧服务器上的网站迁移过来,所以首先就在 ISPConfig3.2.7 控制面板创建了一个个“Websites”(网站),创建“Websites”时,你必须要选择(匹配)一个域名,然后才能保存成功。

因为我的网站都要  Let’s Encrypt 生成 SSL 证书加密,所以就必须勾选如下截图的两个选项。

但是问题出现了,我勾选后,关闭窗口,过30秒再打开,上次选中的复选框又出现没勾选的状态。

ISPConfig Let's Encrypt配置
ISPConfig Let’s Encrypt配置

解决方法:

找到原因非常简单。

什么原因?例如下图我要创建的这个的“odoooo.cn”,就出现这个问题。拿它举例:首先这个“odoooo.cn”域名正在使用,还在旧服务器上,现在我们只是要迁移到目前这台新服务器,所以 “odoooo.cn” 所有解析都没有指向当前部署ISPConfig这台服务器IP。

问题就出现了:当你的域名没有解析当前服务器IP的时候,而你还要用当前服务器去申请 Let’s Encrypt SSL证书,这是不允许的!!!所以你在新服务器上申请肯定不成功!!!

办法:先把“odoooo.cn”域名解析到当前新服务器的IP,再去使用ISPConfig上面的 Let’s Encrypt 生成SSL证书即可!!!

ISPConfig生成SSL证书不成功
ISPConfig生成SSL证书不成功

在ISPConfig中几个 Let’s Encrypt 常见问题

有许多线程处理使用 Let’s Encrypt 生成 SSL 证书的问题,所以我在这里开始了一个常见问题解答。当您遇到问题时,请阅读整篇文章。

为什么 Letsencrypt 不创建 SSL 证书?
Let’s Encrypt 通过从网站的每个域(包括自动子域、子域和别名域)下载单独的令牌来验证您的服务器。如果这些域和子域之一无法访问(没有 DNS、错误的 DNS、关闭的防火墙等),那么 Let’s Encrypt 将拒绝创建 SSL 证书。

为什么 ISPConfig 中的 Let’s Encrypt 会自动禁用?
当通过 Let’s Encrypt 创建 SSL 证书失败时,Let’s Encrypt 和 SSL 复选框在您的网站设置中被禁用。

如果使用Cloudflare,应该如何设置?

因为您通过服务器端已经SSL加密,所以应该不要采用Cloudflare默认的SSL/TLS加密设置,如果使用Cloudflare默认设置,会导致网站无法进行Https访问。

Cloudflare SSL设置
Cloudflare SSL设置

如果使用 Let’s Encrypt 创建 SSL 证书失败,我该怎么办?
– 检查您是否安装了 Let’s Encrypt 客户端。在 ISPConfig 3.2 发布之前安装的服务器上,这很可能是 certbot。在发布后安装的服务器上,它很可能是 acme.sh。
– 检查 Let’s encrypt 客户端“certbot”是否已更新(使用 certbot 时)。
– 检查您是否运行了新的 ISPConfig 版本。
– 当您的服务器位于 NAT 路由器之后,因此服务器本身无法访问托管域时,在系统 -> 服务器配置 -> server1.example.com -> Web 下启用选项“ Skip Letsencrypt check”
– 检查所有域名(包括自动子域 www 等)、子域和别名域是否确实指向正确的网站并且正常工作。在浏览器中打开一个又一个并进行测试。
– 如果您仍然使用 Apache 2.2,则使用 ispconfig_update.sh 脚本将您的 ispconfig 更新到新版本以获得更新的 vhost 模板。完成此操作后,在尝试再次激活 Let’s Encrypt 之前,使用“工具”>“重新同步”将新模板应用于所有站点或通过更改站点设置中的值将其应用于单个站点并按保存。这仅在 apache 2.2 系统上是必需的,较新的 apache 2.4 或 nginx 系统不受影响。
– 如果您从 ISPConfig < 3.1 更新到 ISPConfig > 3.1 并在更新期间取消选择“重新配置服务”选项(默认情况下已选择),那么 Let’s Encrypt 将失败,因为您的服务器缺少 ispconfig apache 配置文件中的 Let’s Encrypt 配置. 在这种情况下,重做更新并选择重新配置服务。
– 检查系统 > 服务器配置下的“服务器迁移模式”选项是否未启用,因为迁移模式禁止创建新的 Let’s encrypt 证书。

在哪里可以找到详细的错误消息?
使用 certbot 时,您可以在此处找到日志文件:/var/log/letsencrypt
使用 acme.sh 时,它可以在 /var/log/ispconfig/acme.log 或 /root/.acme.sh/acme.sh 中。日志

如果上述步骤没有帮助?
按照本指南中的步骤启用 ISPConfig 调试模式:
https://www.faqforge.com/linux/debugging-ispconfig-3-server-actions-in-case-of-a-failure/

这样做后,启用让我们为 Web 加密并手动运行 server.sh 脚本。
解决问题后,不要忘记重新启用 server.sh cronjob。

滚动至顶部