💡
原文中文,约3100字,阅读约需8分钟。
📝
内容提要
本文讨论了如何使用Python和pyOpenSSL模块监控HTTPS网站证书的过期问题。作者发现获取的证书过期时间不正确,经过测试确认是由于未使用SNI(服务名称指示)导致的。修复后,通过添加server_hostname参数,成功获取到正确的证书过期时间。
🎯
关键要点
- 通过pyOpenSSL模块获取HTTPS网站证书的过期时间时,发现获取的时间不正确。
- 经过测试,发现问题是由于未使用SNI(服务名称指示)导致的。
- SNI允许客户端在SSL握手请求中提交请求的Host信息,从而使服务器能够返回正确的证书。
- 在未发送SNI信息的情况下,服务器可能返回错误的证书信息。
- 修复代码后,通过添加server_hostname参数,成功获取到正确的证书过期时间。
❓
延伸问答
如何使用Python监控HTTPS网站证书的过期时间?
可以使用pyOpenSSL模块,通过获取证书并解析其过期时间来监控HTTPS网站证书的过期时间。
为什么获取的证书过期时间可能不正确?
获取的证书过期时间可能不正确是因为未使用SNI(服务名称指示),导致服务器返回错误的证书信息。
什么是SNI,它有什么作用?
SNI(服务名称指示)是一项技术,允许客户端在SSL握手请求中提交请求的Host信息,使服务器能够返回正确的证书。
如何修复获取证书过期时间不正确的问题?
通过在代码中添加server_hostname参数,确保在请求时发送正确的hostname信息,从而获取正确的证书过期时间。
在未发送SNI信息的情况下会发生什么?
在未发送SNI信息的情况下,服务器可能返回错误的证书信息,导致获取到的证书过期时间不准确。
如何验证获取的证书过期时间是否正确?
可以使用openssl命令行工具验证,通过命令查看证书的有效期,确保与代码获取的结果一致。
➡️