证书监控 | 为什么我获取到的证书有效期是错的

证书监控 | 为什么我获取到的证书有效期是错的

💡 原文中文,约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命令行工具验证,通过命令查看证书的有效期,确保与代码获取的结果一致。

➡️

继续阅读