Skip to content

一个用php写的监控域名https证书有效期的管理系统,自动检测、自动发送提醒,支持curl和命令行

License

Notifications You must be signed in to change notification settings

brisk21/https_manager

Repository files navigation

这是一个基于thinkphp5开发的一个监听域名https证书有效期的系统,可以自动发送邮件提醒管理员。

支持mysql和sqlite3数据库(v1.0)

核心功能就两个:查询域名https信息、发送邮件提醒

页面展示

域名 邮件记录 通知栏 邮件内容

安装

1、使用composer安装

composer install

2、配置域名(下面以monitor.test.top为例)

server {
        listen        80;
        server_name  abc.manager.top;
        root   "/https-manager/public";        
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

3、Nginx伪静态

location / {
   if (!-e $request_filename) {
   	rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}

数据库配置,支持mysql和sqlite3

①sqlite版本(v1.0以下):复制sqlite数据库文件(如果是sqlite版本,即v1.0)

(1)自动复制 - composer install 命令执行完成后,自动复制数据库文件

(2)如果发生未知错误,可以进行手动复制 - 可以直接执行 php think copy_db_file 快速进行复制

- 复制install/struct.db到data/db/manager.db 数据库基础文件
(main.sql是结构文件,struct.db是数据库文件可以直接用)

(3)然后修改config/database.php填写type和dsn信息

②采用mysql(v1.1以后):install/https_manager_msyql.sql是mysql版本的数据库,导入到自己新建的数据库,然后修改config/database.php填写信息或者用下面的env配置亦可。

支持.env配置环境变量示例如下:

[app]
app_debug = true
app_trace = false

[database]
TYPE = mysql
hostname = 127.0.0.1
database = https_manager
username = root
password = root
hostport = 3306
prefix = bs_https_
debug = true

具体检测

方式一: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://abc.manager.top/task/check_domain
  • php命令行模式(linux添加crontab,每5分钟执行一次)
*/5 * * * * php think check_domain

二、发送邮件通知

定时任务api接口地址(视任务多少,建议间隔大于5分钟)
  • curl模式发送(宝塔模式)
http://abc.manager.top/task/send_email
  • php命令行模式(linux添加crontab,每5分钟执行一次)
*/5 * * * * php think send_email

三、后台管理

浏览器中访问admin进入管理后台

http://abc.manager.top/admin

四、其它说明

  • config/admin.php 管理员的登录账号信息
  • config/menus.php 后台管理菜单
  • config/notice.php 配置距离多少天过期可以发送邮件,以及是否立即发送提醒邮件(默认开启)
  • data/db/manager.db 以及sqlite数据库文件(不添加到版本控制,仅支持v1.0以下版本)
  • 确保runtime、data目录可写
  • install/https_manager_msyql.sql 此乃mysql结构文件
  • install/struct.db 此乃sqlite版基础数据库,仅支持v1.0以下

About

一个用php写的监控域名https证书有效期的管理系统,自动检测、自动发送提醒,支持curl和命令行

Resources

License

Stars

Watchers

Forks

Packages

No packages published