Я пытаюсь загрузить сертификат удаленного сервера и сохранить его на локальном диске. Это сценарий Python Я использую:Не удается сохранить сертификат на локальный диск с помощью python
from M2Crypto.X509 import FORMAT_PEM
import StringIO
import traceback
from M2Crypto.Err import SSLError
import ssl
import socket
import pprint
import M2Crypto
from M2Crypto import X509, RSA
from datetime import datetime
context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_NONE
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
port = 443
host='216.58.212.67' #google
#creating ssl socket
ssock = context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=host)
#ssl connection
try:
ssock.connect((host, port))
except socket.error: #if tls connection is not possible
print "Faile connection with: " + host
#get the certificate
cert = ssock.getpeercert(True)
x509 = M2Crypto.X509.load_cert_der_string(cert)
x509_file= M2Crypto.X509.load_cert('C:/Users/xxx/Documents/temp',format=FORMAT_PEM)
Когда я бегу, я получаю эту ошибку:
Traceback (most recent call last):
File "C:/Users/ealas/PycharmProjects/tlsScan/test.py", line 36, in <module>
x509_file= M2Crypto.X509.load_cert('C:/Users/xxx/Documents/temp',format=FORMAT_PEM)
File "C:\Python27\lib\site-packages\M2Crypto\X509.py", line 609, in load_cert
bio = BIO.openfile(file)
File "C:\Python27\lib\site-packages\M2Crypto\BIO.py", line 186, in openfile
return File(open(filename, mode))
IOError: [Errno 13] Permission denied: 'C:/Users/xxx/Documents/temp'
Что неправильно в моем коде, пожалуйста?
Ну, какие разрешения для этого файла? Кажется, что нет никаких проблем с вашим кодом. –
Это папка. Сценарий должен написать сертификат на нем. – user2192774
В этом проблема. Вы не можете записывать данные в папку, вы должны указать файл в этой папке. –