使用 Certbot 快速为 hustoj 申请并自动配置免费 SSL 证书 自动续期

以下教程假定您已完成 Hust OJ 的部署,服务器运行环境为 Ubuntu 或 CentOS。

  1. 域名 :确保已为 Hust OJ 配置域名(如 oj.example.com 可以是二级域名),并将其解析到您的服务器 IP。
  2. 服务器权限:您需要具有 root 权限或使用具有 sudo 权限的用户登录服务器。
  3. Web 服务:hustoj 使用的 Web 服务软件(如 Nginx 或 Apache)正确安装和运行。

步骤 1:安装 Certbot

对于基于 Debian/Ubuntu 的系统:
cpp 复制代码
sudo apt update
sudo apt install certbot python3-certbot-nginx
对于基于 CentOS/RHEL 的系统:
cpp 复制代码
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx
复制代码
如果您使用的是 Apache,需将 python3-certbot-nginx 替换为 python3-certbot-apache

步骤 2:配置 Web 服务

在配置证书前,确保 hustoj 的 Nginx/Apache 配置文件已启用域名。例如,Nginx 配置文件可能如下所示:

cpp 复制代码
server {
    listen 80;
    server_name oj.example.com;

    root /path/to/hust-oj;

    location / {
        try_files $uri /index.html;
    }
}

保存后,重新加载服务:

cpp 复制代码
sudo systemctl reload nginx
复制代码

步骤 3:申请 SSL 证书

运行以下 Certbot 命令以自动申请和配置证书:

Nginx 用户:
cpp 复制代码
sudo certbot --nginx -d oj.example.com
Apache 用户:
cpp 复制代码
sudo certbot --apache -d oj.example.com
复制代码
oj.example.com 为你绑定的域名

Certbot 会自动检测您的 Web 服务配置并添加 HTTPS 支持。执行过程中,您需同意服务条款并选择是否将所有 HTTP 流量重定向到 HTTPS。

步骤 4:测试 HTTPS 配置

申请成功后,Certbot 会自动为您的 Hust OJ 配置 SSL。您可以访问 https://oj.example.com 检查是否生效。oj.example.com 为你绑定的域名。

步骤 5:自动续期

Certbot 默认会安装定时任务以自动续期证书,但您可以手动测试:

cpp 复制代码
sudo certbot renew --dry-run

如果没有错误,则续期配置正常。

常见问题排查

  1. 80 端口被占用:Certbot 需使用 80 端口,请确保未被其他程序占用。
  2. DNS 解析错误:检查域名是否正确解析到服务器 IP。

如果操作有困难,可付少量费用代为服务,微信 makytony

我们专业二开部署oj,有大量专业的题库可以提供。

提供了一套完整的OJ教学系统,高质量题库,直击考试要点,学生刷题更高效!更有课件、教案、讲义等全套教学辅助资料,组织学生刷题,发作业、举办模拟赛等更方便,支持C++、Python等多语言,助您备授课无忧!

题库约3600题,覆盖入门+进阶+算法+蓝桥杯+等级考试+CSP+GESP等 。

1、一本通入门和语法篇 600题 配套PPT课件

2、一本通算法篇和提高篇 220题

3、一本通启蒙篇 480题 配套PPT课件

4、CSP-J NOIP复赛近10年真题 45题

5、东方博宜题目1200题 配套讲义视频300节

6、蓝桥大学组基础和算法篇 280题

7、蓝桥青少组选拔赛省国赛历次真题 180题

8、电子学会等级考试C语言历次真题1-8级 120题

9、GESP等级考试 2023-2024年1-8级真题120题

10、蓝桥Python等考历次真题 240题

11、蓝桥c++等考历次真题 200题

12、USACO官网1-6章练习题真题 93题

13、山东CSP小学组2015-2022年真题 32题

14、CSP-S NOIP复赛1996-2023年历次真题 80题

15、16套CSP-J高质量复赛模拟题64题

目前6.0版本 ,新增一言功能, 在线编辑器更智能化,AC通过弹出洛谷礼花, 可换背景,周排名显示top30,学生等级头衔动态更新, 支持客观题判题 ,支持查看未通过测试点等,接入豆包火山AI助教功能,AI解析题目以及学生的错误(AI单算),嵌入课程版块,可以上传视频 pdf讲义 PPT课件在线播放,方便教学。

https://s.c1ns.cn/xmedu OJ功能介绍使用手册

演示地址:http://212.129.250.124:88/home

学生测试账号 xmvip 密码 888666

相关推荐
思想是一切事物的源头20 分钟前
渗透测试所需域名和IP信息收集方法
网络·网络协议·tcp/ip·安全性测试
xx.ii26 分钟前
Zabbix模板,监控项,图形的使用方法
服务器·网络·zabbix
Cx330❀38 分钟前
《Linux基础入门指令(二)》:从零开始理解Linux系统
linux·运维·服务器·网络·经验分享
明月与玄武2 小时前
Linux 网络分析终极武器:Tcpdump 深度指南!
网络·php·tcpdump
_dindong2 小时前
Linux网络编程:Socket编程预备
linux·运维·网络·学习
沐浴露z2 小时前
【深入理解计算机网络11】应用层详解:DNS,WWW,HTTP
服务器·网络协议·计算机网络·http
迎風吹頭髮2 小时前
Linux服务器编程实践22-TCP头部选项解析:MSS、窗口扩大因子与SACK
服务器·网络·tcp/ip
_dindong2 小时前
Linux网络编程:宏观网络体系
linux·网络·笔记·学习
想不明白的过度思考者2 小时前
JavaEE初阶——TCP/IP协议栈:从原理到实战
java·网络·网络协议·tcp/ip·java-ee
人邮异步社区2 小时前
内网攻防实战图谱:从红队视角构建安全对抗体系
网络·安全·web安全