You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在OJS网站使用Certbot安装SSL证书时遭遇HTTP-01挑战失败

解决OJS站点HTTP-01挑战失败的问题

核心问题分析

HTTP-01挑战要求Let's Encrypt验证服务器能通过80端口访问你的域名(journal.iba-suk.edu.pk)下的/.well-known/acme-challenge/路径。你的OJS运行在8089端口,默认Apache配置大概率没正确处理80端口的验证请求转发或文件访问权限。

分步解决方法

1. 确认80端口正常对外服务

  • 执行netstat -tulpn | grep :80,检查Apache是否在监听80端口。如果无监听记录,修改Apache默认虚拟主机配置(通常在/etc/apache2/sites-available/000-default.conf),确保<VirtualHost *:80>块存在,之后重启Apache:sudo systemctl restart apache2。
  • 检查服务器外网入口(比如云服务商安全组)是否开放80端口,部分云平台安全组默认会限制80/443端口,需手动放行。

2. 配置Apache反向代理与验证路径放行

因为OJS在8089端口,需要让Apache在80端口优先处理验证请求,再将其他请求转发到8089:

  1. 编辑OJS站点的Apache配置文件(例如/etc/apache2/sites-available/journal.iba-suk.edu.pk.conf),添加或修改80端口虚拟主机:
<VirtualHost *:80>
    ServerName journal.iba-suk.edu.pk

    # 优先处理acme挑战路径
    Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
    <Directory /var/www/html/.well-known/acme-challenge/>
        Require all granted
    </Directory>

    # 其余请求反向代理到OJS的8089端口
    ProxyPass / http://localhost:8089/
    ProxyPassReverse / http://localhost:8089/
</VirtualHost>
  1. 启用必要的Apache模块:
sudo a2enmod proxy proxy_http rewrite
sudo systemctl restart apache2
  1. 手动测试验证路径可访问性:
sudo mkdir -p /var/www/html/.well-known/acme-challenge/
sudo echo "test-content" > /var/www/html/.well-known/acme-challenge/test-file

在浏览器访问http://journal.iba-suk.edu.pk/.well-known/acme-challenge/test-file,能看到test-content则说明路径配置正常。

3. 重新执行Certbot命令

完成上述配置后,重新运行:

sudo certbot --apache

Certbot会自动识别80端口配置,完成验证后生成证书,并自动配置443端口的SSL虚拟主机。

4. 验证SSL配置有效性

证书安装完成后重启Apache:

sudo systemctl restart apache2

访问https://journal.iba-suk.edu.pk确认SSL正常工作,也可通过curl -v https://journal.iba-suk.edu.pk检查证书详情。

内容的提问来源于stack exchange,提问作者Ahmed Syed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:49:55