Potrzebuję użyć pliku certyfikatu klienta w formacie p12 (PKCS12), aby porozmawiać z serwerem za pomocą scrapy, czy jest jakiś sposób na zrobienie tego?Jak korzystać z certyfikatu klienta ssl (p12) ze Scrapy?
Odpowiedz
Nie mogę zaoferować tutaj przetestowanego i kompletnego rozwiązania, ale znam kilka miejsc, w których niektóre dostosowania mogą dać ci to, czego potrzebujesz.
Punktem wyjścia jest obiekt scrapy o numerze ContextFactory
definiujący konfigurację SSL/TLS. Standardowa implementacja ScrapyClientContextFactory
nie używa certyfikatów klienta, a także nie przeprowadza weryfikacji certyfikatu serwera, akceptuje tylko dowolny certyfikat. (More details)
Patrząc na source code jednak widać alternatywą BrowserLikeContextFactory
jest utworzenie obiektu optionsForClientTLS. Ten obiekt może również wymagać parametru clientCertificate
do uwierzytelnienia na serwerze. (Details)
więc teoretycznie trzeba podklasy BrowserLikeContextFactory
, napisz tam swój własny creatorForNetloc
sposób i uczynić go utworzyć optionsForClientTLS
które również mają clientCertificate
W GIST:
@implementer(IPolicyForHTTPS)
class ClientCertContextFactory(BrowserLikeContextFactory):
def creatorForNetloc(self, hostname, port):
with open('yourcert.pem') as keyAndCert:
myClientCert = twisted.internet.ssl.PrivateCertificate.load(keyAndCert.read())
return optionsForClientTLS(hostname.decode("ascii"),
trustRoot=platformTrust(),
clientCertificate=myClientCert,
extraCertificateOptions={
'method': self._ssl_method,
})
Aktywacja kontekstu fabryka w settings.py:
DOWNLOADER_CLIENTCONTEXTFACTORY = 'your.package.ClientCertContextFactory'
Według do docs twisted.internet.ssl.PrivateCertificate
może jedynie klawisze PEM obciążenie lub formacie ASN.1, si trzeba będzie przekształcić swój klucz w formacie PEM:
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
(zapożyczone z Converting pfx to pem using openssl)
aktualizacji konwersji plików pkcs12 w formacie p12:
openssl pkcs12 -in client_cert.p12 -out client_cert.pem -clcerts
- 1. RestClient braku GET zasobu za pomocą certyfikatu klienta SSL
- 2. Jak uzyskać odciski palców SHA1 z certyfikatu P12?
- 3. Jakiego certyfikatu SSL potrzebuję?
- 4. weryfikacji certyfikatu SSL w Java
- 5. PHP - certyfikat klienta gniazda SSL
- 6. Konfiguracja certyfikatu SSL dla SslStream
- 7. Jak mogę wyodrębnić klucz z certyfikatu SSL?
- 8. Jak korzystać ze Scrapy w celu przeszukiwania stron?
- 9. Wstępne pobieranie certyfikatu SSL .NET
- 10. Konfiguracja certyfikatu gniazda SSL SSL Golang
- 11. Jak wygenerować certyfikat klienta SSL z odłączonej sieci?
- 12. Używanie certyfikatu Wcf SSl przez Tcp bez certyfikatu klienta (tylko po stronie serwera)
- 13. Jak zmusić klienta WCF do wysłania certyfikatu klienta?
- 14. Przeczytaj szczegóły certyfikatu SSL na temat WP8
- 15. Nie można dołączyć certyfikatu SSL
- 16. Importowanie certyfikatu SSL do Eclipse
- 17. Żądanie certyfikatu klienta w Asp.net MVC
- 18. iPhone: uwierzytelnianie certyfikatu klienta HTTPS
- 19. Uwierzytelnianie SSL przez porównanie odcisku palca certyfikatu?
- 20. Jak korzystać z SSL w aplikacji ASP.NET
- 21. Tryb serwera C# SSL musi korzystać z certyfikatu z odpowiednim kluczem prywatnym
- 22. Błąd Importowanie certyfikatu SSL: Brak certyfikatu X.509
- 23. Autoryzacja klienta SSL na węźle node.js
- 24. NSS: nie znaleziono certyfikatu klienta (pseudonim nie jest określony)
- 25. Wdrożenie klienta C# korzystającego z usług WebServices przez SSL?
- 26. Podpisywanie pakietu apk z .p12
- 27. Parsowanie + mongodb + SSL: "brak certyfikatu SSL dostarczonego przez równorzędnego"
- 28. Używanie certyfikatu klienta spoza magazynu certyfikatów
- 29. Jak wykonać uwierzytelnianie za pomocą certyfikatu klienta za pomocą Apache
- 30. Jak korzystać z Apache CXF jako klienta?