[英]How to fetch details of website SSL certificate expiry, issuer etc using selenium python?
[英]how to get ssl certificate details using python
我正在使用以下代码来验证 ssl 证书状态,我们能否使用请求模块或 urllib 获取有关证书的更多详细信息,例如通用名称 (CN)、到期日期和颁发者
import requests
def check_ssl(url):
try:
req = requests.get(url, verify=True)
print url + ' has a valid SSL certificate!'
except requests.exceptions.SSLError:
print url + ' has INVALID SSL certificate!'
check_ssl('https://google.com')
check_ssl('https://example.com')
import socket
import ssl
import datetime
domains_url = [
"devnote.in",
"devnote_wrong.in",
"stackoverflow.com",
"stackoverflow.com/status/404"
]
def ssl_expiry_datetime(hostname):
ssl_dateformat = r'%b %d %H:%M:%S %Y %Z'
context = ssl.create_default_context()
context.check_hostname = False
conn = context.wrap_socket(
socket.socket(socket.AF_INET),
server_hostname=hostname,
)
# 5 second timeout
conn.settimeout(5.0)
conn.connect((hostname, 443))
ssl_info = conn.getpeercert()
# Python datetime object
return datetime.datetime.strptime(ssl_info['notAfter'], ssl_dateformat)
if __name__ == "__main__":
for value in domains_url:
now = datetime.datetime.now()
try:
expire = ssl_expiry_datetime(value)
diff = expire - now
print ("Domain name: {} Expiry Date: {} Expiry Day: {}".format(value,expire.strftime("%Y-%m-%d"),diff.days))
except Exception as e:
print (e)
#Output :
Domain name: devnote.in Expiry Date: 2020-11-11 Expiry Day: 46
[Errno -2] Name or service not known
Domain name: stackoverflow.com Expiry Date: 2020-11-05 Expiry Day: 41
[Errno -2] Name or service not known
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.