首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >证书到期提醒竟然要收费?白嫖方法来了

证书到期提醒竟然要收费?白嫖方法来了

作者头像
大风写全栈
发布于 2024-11-21 19:41:12
发布于 2024-11-21 19:41:12
7330
举报
文章被收录于专栏:锤子代码锤子代码

SSL证书过期提醒

众所周知,SSL证书是网站的一个保障。但对个人来说,有个免费的SSL证书用太方便了,还有现成工具可以自动续期。

部分部署在内网环境的服务,没办法自动更新证书有效期,就只能人工去操作。

人工操作倒也还好,因为我是在域名管理商那里申请的证书,界面操作比一般的命令行要简单些。

想设置个证书到期提醒,方便人工替换新证书。

万万没想到,证书提醒是按次数收费的。

没有经费,只能自己想办法。

灵光一现

既然SSL证书是在网络上,那我们岂不是可以写个工具去检查指定网站的SSL证书过期日期?

说干就干,参考资料写了个Python脚本。

把脚本部署到服务器上,然后设置两个定时任务,分别是上午10点和下午17点。

如果指定的域名证书在30天内过期,会发送消息给飞书机器人。

代码语言:javascript
复制
import ssl
import socket
from datetime import datetime, timedelta
import requests

'''
定时检查SSL是否过期,并发起提醒.
0 10 * * * /usr/bin/python3 /root/check.py
0 17 * * * /usr/bin/python3 /root/check.py
'''

def check_ssl_expiry_date(domain):
    context = ssl.create_default_context()
    conn = context.wrap_socket(
        socket.socket(socket.AF_INET),
        server_hostname=domain,
    )
    try:
        conn.connect((domain, 443))
        cert = conn.getpeercert()
        expiry_date = datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
        return expiry_date
    finally:
        conn.close()
def send_feishu(webhook_url, message):
    headers = {'Content-Type': 'application/json'}
    data = {
        "msg_type": "text",
        "content": {"text": message}
    }
    response = requests.post(webhook_url, json=data)
    if response.status_code != 200:
        raise Exception(f"消息发送失败: {response.text}")
def check_domains(domains, webhook_url):
    today = datetime.now()
    for domain in domains:
        expiry_date = check_ssl_expiry_date(domain)
        days_remaining = (expiry_date - today).days
        if days_remaining <= 30:
            message = f"提醒: {domain}的SSL证书,还有{days_remaining}天过期!"
            send_feishu(webhook_url, message)
if __name__ == "__main__":
    # 换成你自己的
    domain_list = ["www.baidu.com","www.qq.com"] 
    # 换成你自己的
    feishu_message_url = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx"
    check_domains(domain_list, feishu_message_url)

简单把?别忘了改脚本里面的地址和消息推送机器人地址。

配置飞书消息机器人的时候,你可以:

1. 设置IP白名单;

2. 限制关键词,比如SSL证书。

这两点做了,能提高消息机器人的安全性。

学会了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档