# 监听域名https证书有效期 **Repository Path**: web/https_check ## Basic Information - **Project Name**: 监听域名https证书有效期 - **Description**: 自从免费证书调整为3个月之后经常会忘了续期证收,于是改造了一个系统。 这是一个基于thinkphp5开发的一个监听域名https证书有效期的系统,可以自动发送邮件提醒管理员。 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://ssl.bitefu.net/ - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2025-01-17 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 自从免费证书调整为3个月之后经常会忘了续期证书,于是改造了一个系统。 这是一个基于thinkphp5开发的一个监听域名https证书有效期的系统,可以自动发送邮件提醒管理员。 核心功能就两个:查询域名https信息、发送邮件提醒 支持多用户,多域名,简单的权限管理。 ## 测试站 http://ssl.bitefu.net/ 测试账号test 密码 test ## 安装 1. 上传文件 2. 绑定域名到public目录 3. 导入install/install.sql 4. 配置数据库 ## 数据库配置 支持.env配置环境变量示例如下: ~~~ [app] app_debug = false app_trace = false [database] TYPE = mysql hostname = 127.0.0.1 database = test_email username = root password = root hostport = 3306 prefix = https_ debug = false ~~~ Nginx伪静态 ~~~ location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } ~~~ ### 具体检测 ### 方式一:workerman定时器 具体命令: ``` # 守护进程方式启动,每15秒执行一次定时器,定时检查域名,以及发送提醒邮件 php think timer start --d --i 15 # 停止 php think timer stop # 重启 php think timer restart --d --i 15 ``` 注:如果修改了代码,请务必重启定时器 ### 方式二:curl请求或linux定时任务【推荐】 ### 一、检测域名有效期 ##### 定时任务api接口地址(如果域名数量小于30建议每天一次) + curl模式获取域名证书状态 ~~~ http://www.domain.com/task/check_domain ~~~ + php命令行模式(linux添加crontab,每5分钟执行一次) ~~~ */5 * * * * php think check_domain ~~~ ### 二、发送邮件通知 ##### 定时任务api接口地址(视任务多少,建议间隔大于5分钟) + curl模式发送(宝塔模式) ~~~ http://www.domain.com/task/send_email ~~~ + php命令行模式(linux添加crontab,每5分钟执行一次) ~~~ */5 * * * * php think send_email ~~~ ### 三、后台管理 浏览器中访问admin进入管理后台 ~~~ http://www.domain.com/admin 账号:admin 密码:admin ~~~ ### 四、其它说明 + config/notice.php 配置距离多少天过期可以发送邮件,以及是否立即发送提醒邮件(默认开启) + 确保runtime、data目录可写 #### 页面展示 ![域名](./readme/domain.png "域名管理.png") ![邮件记录](./readme/mail.png "邮件记录.png") ![通知栏](./readme/notice.jpg "通知栏.png") ![邮件内容](./readme/email-info.jpg "邮件内容.png")