#证书 #crt #sh #ct #监控 #已见 #信息

app crtshmon

监控 crt.sh 的新证书

3 个版本

0.1.2 2023年8月29日
0.1.1 2021年10月30日
0.1.0 2021年10月29日

#782 in 密码学

MIT/Apache

14KB
222

crtshmon 是一个简单的工具,它只做一件事:从 crt.sh 获取一个或多个网站的 CT 日志,并显示尚未看到的证书信息。

因为 crtshmon 依赖于 crt.sh 而不是使用上游 CT 集线器,所以它快速且轻量。

安装

crtshmon 可以与 docker 或兼容的等效工具一起使用

docker run registry.hub.docker.com/c4k3/crtshmon:latest -d example.com

可以用 cargo 安装

cargo install crtshmon

也可以使用 cargo 从源代码构建

cargo build --release

在这种情况下,输出将放在 target/release/crtshmon 中。

使用方法

crtshmon 将检查使用 --domain 指定的域名,将新看到的证书信息写入 stdout,然后退出。没有提供守护进程模式。

crtshmon 将仅显示它尚未看到的证书。它将只显示尚未过期的证书。

crtshmon 很适合作为 cronjob 运行。如果您的 cron 守护程序支持通过电子邮件发送作业的输出,则可以通过电子邮件接收有关新证书的通知。如果没有新证书,crtshmon 将退出而不写入任何内容到 stdout,这意味着您只有在证书签发时才会收到通知(假设您的 cron 守护程序跳过了没有输出的通知作业。)

没有理由频繁运行 crtshmon(例如,每小时运行一次以上。)将新证书包含到 CT 日志中远非即时。

以下选项可用

--domain

使用 -d/--domain 指定您要检查的域名。此选项可以重复多次。

--directory

crtshmon 将只显示一次证书。为了跟踪它已看到的证书,它将写入一个状态文件。默认情况下,状态文件写入到 ./crtshmon.json。可以通过 --directory 选项更改写入到的目录(但不是文件名)。

如果在 docker/kubernetes 内运行,您需要将持久卷挂载到容器中,以便 crtshmon 将其状态写入。您可以将此目录挂载到 /home/crtshmon,在这种情况下,您不需要指定任何 --directory

--json-log

默认情况下,crtshmon将以人类可读的纯文本格式输出证书信息。它还可以使用--json-log选项以ndjson格式输出信息。

依赖项

~10-20MB
~297K SLoC