python - 需要转换 ASN1(x509) 的帮助

标签 python converters

坚持尝试将我的结果从“20190211004950Z”(ASN1)转换为“2019-02-11”(标准日期)在任何人询问之前,这只是一个简单的 SSL 到期检查,并且日期创建/到期日期不断输出就像我之前发布的那样。

我的代码如下所示

          **

    **import OpenSSL
import socket
import ssl
from pprint import pprint
from urllib.error import URLError, HTTPError
from urllib.request import Request, urlopen
import datetime


def get_certificate(port=443, timeout=10):
    """

    :param timeout:
    :type port: object
    """
    context = ssl.create_default_context()
    # test=(host,port)
    host = input("enter a URL")
    conn = socket.create_connection(address=(host, port))

    sock = context.wrap_socket(conn, server_hostname=host)

    sock.settimeout(timeout)
    try:
        der_cert = sock.getpeercert(True)
    finally:
        sock.close()
    return ssl.DER_cert_to_PEM_cert(der_cert)


certificate = get_certificate()
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, certificate)


result = {
    'subject': dict(x509.get_subject().get_components()),
    'issuer': dict(x509.get_issuer().get_components()),
    'serialNumber': x509.get_serial_number(),
    'version': x509.get_version(),
    'notBefore': str(x509.get_notBefore()),
    'notAfter': str(x509.get_notAfter())
}

extensions = (x509.get_extension(i) for i in range(x509.get_extension_count()))
extension = (e.get_short_name() for e in extensions)
result.update(name=extension)
pprint(result)**

**

如有任何帮助,我们将不胜感激

最佳答案

您想要从 20190211004950Z 中提取 YYYY-MM-DD

只有一行:

import datetime

asn1_time = '20190211004950Z'

datetime.datetime.strptime(asn1_time, '%Y%m%d%H%M%S%fZ').strftime("%Y-%m-%d")

关于python - 需要转换 ASN1(x509) 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613348/

相关文章:

java - “如果”和 'Else' 在 Java 中不起作用?

python - 如何使用 if-else 条件在数据集中插入缺失的行序列?

python - 在 Python 中解析 Javascript

php - 使用 PHP 将 txt 数据文件转换为结构化 JSON

video - 将 isom 转换为 mp42

java - 原始类型的自定义转换器

javascript - 是否存在用于批处理的免费 JavaScript/ActionScript 解释器?

python - Celery 为每个任务创建一个新连接

python - 在 Kivy 中,为什么 popup.dismiss() 不从内存中删除弹出窗口?

python - 更改 QGraphicsView 的方向