我想得到一些证书的到期时间,因为我想写一个程序来通知证书何时到期。你知道吗
但是当我运行代码时,我发现有时结果(过期时间)是错误的不一样。它不是现在时间不同了,数字有很多不同,比如1和100。你可以看到图片。我猜拿到证书的过程是错误的,但是我找不到在哪里是的。再说了,这不是时区的问题。你知道吗
for length_list_domain in range(0,len(all_domains['HostedZones'])):
HostedZoneId = all_domains['HostedZones'][length_list_domain]['Id']
sub_domains = client.list_resource_record_sets(HostedZoneId = HostedZoneId)
for length_list_subdomain in range(0,len(sub_domains['ResourceRecordSets'])):
try:
if all_domains['HostedZones'][length_list_domain]['Name'] in null_domain:
break
else:
hostname = sub_domains['ResourceRecordSets'][length_list_subdomain]['Name']
port = 443
conn = ssl.create_connection((hostname,port))
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
sock = context.wrap_socket(conn,server_hostname = hostname)
certificate = ssl.DER_cert_to_PEM_cert(sock.getpeercert(True))
x509 = reqs.OpenSSL.crypto.load_certificate(reqs.OpenSSL.crypto.FILETYPE_PEM,certificate)
expire_time_first = x509.get_notAfter()[:-1].decode()
now = datetime.datetime.utcnow()
expire_time = datetime.datetime.strptime(expire_time_first,'%Y%m%d%H%M%S')
remain_time = expire_time - now
print(remain_time.days)
remain_time_list[all_domains['HostedZones'][length_list_domain]['Name']] = remain_time.days
break
except:
pass
return remain_time_list
然后我尝试线程锁来解决这个问题,但它没有工作。你知道吗
mutex = threading.Lock()
for length_list_domain in range(0,len(all_domains['HostedZones'])):
HostedZoneId = all_domains['HostedZones'][length_list_domain]['Id']
sub_domains = client.list_resource_record_sets(HostedZoneId = HostedZoneId)
for length_list_subdomain in range(0,len(sub_domains['ResourceRecordSets'])):
try:
if all_domains['HostedZones'][length_list_domain]['Name'] in null_domain:
break
else:
mutex.acquire()
hostname = sub_domains['ResourceRecordSets'][length_list_subdomain]['Name']
port = 443
conn = ssl.create_connection((hostname,port))
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
sock = context.wrap_socket(conn,server_hostname = hostname)
certificate = ssl.DER_cert_to_PEM_cert(sock.getpeercert(True))
x509 = reqs.OpenSSL.crypto.load_certificate(reqs.OpenSSL.crypto.FILETYPE_PEM,certificate)
expire_time_first = x509.get_notAfter()[:-1].decode()
mutex.release()
now = datetime.datetime.utcnow()
expire_time = datetime.datetime.strptime(expire_time_first,'%Y%m%d%H%M%S')
remain_time = expire_time - now
print(remain_time.days)
remain_time_list[all_domains['HostedZones'][length_list_domain]['Name']] = remain_time.days
break
except:
pass
return remain_time_list
The results are as this picture,the number is the day of remain time(expired time - nowtime)
我使用x509.get\u主题和需求获取替代主题为了获取信息,我只运行了第一个域,似乎会出现另一个域,为什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐