Кто-нибудь нашел способ указать DNS-сервер для соединений OpenSSL в Linux ОС? У нас есть внутренний и внешний DNS-серверы, и я создаю монитор для использования SSL-сертификатов. Мне нужна возможность указать DNS-сервер, который будет использоваться на соединениях имени хоста. Он прекрасно работает с внутренним DNS, но у меня возникают трудности с поиском пути к t ie на DNS-сервере. Я довольно новичок в изменении сетей через Python и не уверен, с чего начать. Возможно ли сделать это через функцию nameservers модуля dns.resolver?
Это выглядит как жизнеспособное решение для Windows, но я надеюсь найти что-то подобное для Linux. Как программно изменить DNS-серверы в Windows?
Ниже приведен мой код, который работает с хостом DNS по умолчанию.
def readCerts(self,host,port,cast):
"""readCerts prompts terminal for username.
Attributes:
host: Host or IP of SSL connection
port: Port of SSL connection
cast: Format of returned results (JSON currently only structure supported)
Response:
Returns certificate attributes in specified format
"""
sslContext = SSL.Context(SSL.SSLv23_METHOD)
apiSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sslConnection = SSL.Connection(sslContext,apiSocket)
try:
sslConnection.connect((host,port))
except Exception as e:
raise e
else:
#Block the socket
sslConnection.setblocking(1)
#Set the hostname field for servers that support SNI. Format must be in bytestring.
sslConnection.set_tlsext_host_name(host.encode('utf-8'))
try:
sslConnection.do_handshake()
except:
pass
else:
#print "handshake succeeded"
sslConnection.close()
if cast.upper()=='JSON':
attributes = self._FormatJSON(sslConnection.get_peer_cert_chain())
return attributes