from OpenSSL import SSL
from twisted.internet.ssl import ClientContextFactory
from twisted.internet.ssl import PrivateCertificate
#from twisted.internet.ssl import DefaultOpenSSLContextFactory
from twisted.internet import ssl
class BrowserLikeContextFactory(ScrapyClientContextFactory):
def creatorForNetloc(self, hostname, port):
# trustRoot set to platformTrust() will use the platform's root CAs.
#
# This means that a website like https://www.cacert.org will be rejected
# by default, since CAcert.org CA certificate is seldom shipped.
with open ('path\\sample.pem') as f:
keyAndCert = f.read()
myClientCert = PrivateCertificate.loadPEM(keyAndCert)
return optionsForClientTLS(hostname.decode("ascii"),
trustRoot=platformTrust(),
clientCertificate=myClientCert,
extraCertificateOptions={
'method': self._ssl_method,
})
Из приведенного выше кода я пытаюсь загрузить один файл PEM организации (который мне разрешено использовать) для доступа к их сайту. Файл существует по указанному пути с совпадающим именем файла.
Однако произошла ошибка. Это проблема с файлом или как я реализовал код?
Я создал файл .pem из файла .pfx, используя этот код
openssl pkcs12 -in sample.pfx -out sample.pem