网站首页 > 技术教程 正文
今天老码给大家推荐一款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工具与配置,日志按日期精准分割
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)