网站首页 > 技术教程 正文
今天老码给大家推荐一款nginx下可以自动扫描ssl配置文件输出ssl证书有效时间的小工具。工具使用方法很简单
./nginxSSLParse \
--folder=你的nginx配置hosts目录 \
--suffix=文件后缀默认conf \
--day=检测过期范围,默认10天
NAME:
nginxSslParse - 扫描检查ssl证书过期时间
USAGE:
nginxSslParse [global options] command [command options] [arguments...]
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--folder value
--suffix value (default: "conf")
--day value (default: 30)
--help show help
使用参考截图
工具原理简介
读取三个参数(站点hosts目录、文件后缀、过期范围时间单位天数)
扫描指定目录下的所有host文件
allConfFiles, err := filepath.Glob(path.Join(folder, "*."+suffix))
if err != nil {
return err
}
//读取文件内容找到对应 ssl_certificate 指令文件
for _, confFile := range allConfFiles {
//如下
}
}
解析host文件指令ssl_certificate并获取配置
config := p.Parse()
directives := config.FindDirectives("ssl_certificate")
if len(directives) == 0 {
continue
}
sslFiles := directives[0].GetParameters()
if len(sslFiles) == 0 {
continue
}
if tmpFile, err := os.Stat(sslFiles[0]); err != nil || tmpFile.Size() == 0 {
continue
}
解析证书拿到有效开始时间、结束时间,判断与给定的有效天数对比过期并红色输出提醒
func parserSslFile(cliContext *cli.Context, sslFile string) {
sslRaw, err := os.ReadFile(sslFile)
if err != nil {
log.Printf("readSSLFile %s failed %v\n", sslFile, err)
return
}
certDERBlock, _ := pem.Decode(sslRaw)
if certDERBlock == nil {
log.Print(err)
return
}
x509Cert, err := x509.ParseCertificate(certDERBlock.Bytes)
if err != nil {
log.Print(err)
return
}
if x509Cert.NotAfter.Before(time.Now().Add(time.Hour * 24 * time.Duration(cliContext.Int("day")))) {
log.Printf("foundSSLFile %s StartAt=%s,EndAt=\u001B[0;31m%s\033[0m \n",
sslFile,
x509Cert.NotBefore.Format("2006-01-02 15:04"),
x509Cert.NotAfter.Format("2006-01-02 15:04"),
)
} else {
log.Printf("foundSSLFile %s StartAt=%s, EndAt=%s\n",
sslFile,
x509Cert.NotBefore.Format("2006-01-02 15:04"),
x509Cert.NotAfter.Format("2006-01-02 15:04"),
)
}
}
工具使用场景多见于使用免费一年证书域名,用于查看哪些域名证书即将过期。
工具已经在github开源
https://github.com/ixqbar/nginxSSLParse
欢迎各位收藏、关注、点赞!
猜你喜欢
- 2024-10-15 Nginx学习笔记(03)配置文件events段核心参数用法
- 2024-10-06 集群服务器时间同步(集群服务器文件同步)
- 2024-10-06 Nginx之进程间通信-共享内存篇(nginx进程数)
- 2024-10-06 Nginx日志管理大揭秘:logrotate工具与配置,日志按日期精准分割
你 发表评论:
欢迎- 最近发表
-
- linux CentOS检查见后门程序的shell
- 网络安全工程师演示:黑客是如何使用Nmap网络扫描工具的?
- Linux中ftp服务修改默认21端口等(linux修改ftp配置文件)
- Linux系统下使用Iptables配置端口转发,运维实战收藏!
- 谈谈TCP和UDP源端口的确定(tcp和udp的端口号相同吗)
- Linux 系统 通过端口号找到对应的服务及相应安装位置
- 快速查找NAS未占用端口!Docker端口秒级排查+可视化占坑双杀技
- 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH端口号
- 如何在Linux中查询 DNS 记录,这三个命令可谓是最常用、最经典的
- 【Linux系统编程】特殊进程之守护进程
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)