46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from dns.message import make_query, from_wire
|
|
import ssl
|
|
|
|
|
|
def make_ssl_context(check_cert=False):
|
|
ssl_ctx = ssl.create_default_context()
|
|
ssl_ctx.check_hostname = False
|
|
if check_cert:
|
|
ssl_ctx.verify_mode = ssl.CERT_REQUIRED
|
|
else:
|
|
# ssl_ctx.verify_mode = ssl.CERT_NONE
|
|
ssl_ctx.verify_mode = ssl.CERT_OPTIONAL
|
|
# ssl_ctx.minimum_version = ssl.TLSVersion.TLSv1_1
|
|
return ssl_ctx
|
|
|
|
|
|
def build_dns_query(qname="example.com", rtype="A"):
|
|
dns_query = make_query(
|
|
qname=qname,
|
|
rdtype=rtype,
|
|
want_dnssec=False,
|
|
)
|
|
return dns_query
|
|
|
|
|
|
def get_domain_from_cert(cert):
|
|
cert_info_domain_related = []
|
|
|
|
if not cert:
|
|
return cert_info_domain_related
|
|
|
|
for key, value in cert.items():
|
|
if key == "subject":
|
|
for (sub_key, sub_value), in value:
|
|
if sub_key == "commonName":
|
|
# print(sub_value)
|
|
cert_info_domain_related.append(sub_value)
|
|
if key == "subjectAltName":
|
|
for (sub_key, sub_value) in value:
|
|
cert_info_domain_related.append(sub_value)
|
|
return list(set(cert_info_domain_related))
|
|
|
|
# def build_dns_query_wireformat(qname="example.com", rtype="A"):
|
|
# dns_query = build_dns_query()
|
|
# return dns_query.to_wire()
|