基于Python + Vue3.js 技术栈实现的域名和SSL证书监测平台
用于解决,不同业务域名SSL证书,申请自不同的平台,到期后不能及时收到通知,导致线上访问异常,被老板责骂的问题
Domain Admin是一个轻量级监控方案,占用系统资源较少。同时,Domain Admin也可以作为一个Flask 和 Vue.js前后端分离的项目模板
-
项目优势
- 集中管理: 提供一个统一的平台来管理多个域名,极大地提高了管理效率。
- 自动提醒: 支持域名到期提醒,帮助用户避免因域名过期导致的服务中断。
- 开源灵活: 作为开源项目,用户可以根据自身需求进行定制和扩展。
- 社区支持: 拥有活跃的社区,可以获得持续的更新和问题支持。
- 用户友好: 界面简洁直观,容易上手。
-
功能描述
- 核心功能:
域名
、SSL证书
和托管证书文件
的过期监控,到期提醒 - 支持证书:单域名证书、多域名证书、泛域名(通配符)证书、IP证书、自签名证书
- 证书部署:单一主机部署、多主机部署、动态主机部署
- 通知渠道:支持邮件、Webhook、企业微信、钉钉、飞书等通知方式
- 支持平台:macOS、Linux、Windows
- 辅助功能:
Let’s Encrypt
SSL证书免费申请和SSL证书自动续期
- 核心功能:
1.pip方式安装
# 创建名为 venv 的虚拟环境并激活 python3 -m venv venv && source venv/bin/activate # 安装 domain-admin pip install gunicorn domain-admin # 启动运行 gunicorn --bind '127.0.0.1:8080' 'domain_admin.main:app' -D
2.配置宝塔站点
后台默认账号、密码:
- 账号:admin
- 密码:123456
server { listen 80; server_name domain.xxx.com; index index.php index.html index.htm default.php default.htm default.html; root /alidata/www/domain.xxx.com; #CERT-APPLY-CHECK--START # 用于SSL证书申请时的文件验证相关配置 -- 请勿删除 include /www/server/panel/vhost/nginx/well-known/domain.xxx.com.conf; #CERT-APPLY-CHECK--END #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END #ERROR-PAGE-START 错误页配置,可以注释、删除或修改 #error_page 404 /404.html; #error_page 502 /502.html; #ERROR-PAGE-END #PHP-INFO-START PHP引用配置,可以注释或修改 include enable-php-00.conf; #PHP-INFO-END #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效 include /www/server/panel/vhost/rewrite/domain.xxx.com.conf; #REWRITE-END #禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) { return 404; } #一键申请SSL证书验证目录相关设置 location ~ \.well-known{ allow all; } #禁止在证书验证目录放入敏感文件 if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) { return 403; } # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ # { # expires 30d; # error_log /dev/null; # access_log /dev/null; # } # location ~ .*\.(js|css)?$ # { # expires 12h; # error_log /dev/null; # access_log /dev/null; # } access_log /www/wwwlogs/domain.xxx.com.log; error_log /www/wwwlogs/domain.xxx.com.error.log; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }