Tôi cần sử dụng tệp chứng chỉ ứng dụng khách ở định dạng p12 (PKCS12) để nói chuyện với máy chủ web có nhiều mẩu tin lưu niệm, có cách nào để làm điều đó không?Cách sử dụng chứng chỉ ứng dụng khách ssl (p12) bằng Scrapy?
Trả lời
Tôi không thể cung cấp cho bạn một giải pháp đã được kiểm tra và hoàn chỉnh tại đây, nhưng tôi biết một vài nơi mà một số điều chỉnh có thể cung cấp cho bạn những gì bạn cần.
Điểm bắt đầu là đối tượng ContextFactory
của scrapy xác định cấu hình SSL/TLS. Việc triển khai chuẩn ScrapyClientContextFactory
không sử dụng chứng chỉ ứng dụng khách và cũng không thực hiện bất kỳ xác minh chứng chỉ máy chủ nào, nó chỉ chấp nhận bất kỳ chứng chỉ nào. (More details)
Khi nhìn vào source code tuy nhiên bạn thấy cách thay thế BrowserLikeContextFactory
đang tạo tùy chọnĐối tượngThuộc tínhTLS.
Đối tượng này cũng có thể tham số clientCertificate
để xác thực với máy chủ. (Details)
Vì vậy, về mặt lý thuyết bạn cần phải phân lớp BrowserLikeContextFactory
, viết có của riêng bạn creatorForNetloc
phương pháp và làm cho nó tạo optionsForClientTLS
rằng cũng có một clientCertificate
Trong một ý chính:
@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,
})
Kích hoạt bối cảnh factory in settings.py:
DOWNLOADER_CLIENTCONTEXTFACTORY = 'your.package.ClientCertContextFactory'
Theo để các tài liệu twisted.internet.ssl.PrivateCertificate
chỉ có thể pem tải hoặc định dạng ASN.1 phím, si bạn sẽ phải chuyển đổi chìa khóa của bạn sang định dạng pem:
openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts
(vay từ Converting pfx to pem using openssl)
Cập nhật chuyển đổi cho các tập tin pkcs12 ở định dạng p12:
openssl pkcs12 -in client_cert.p12 -out client_cert.pem -clcerts
- 1. cách xác minh chứng chỉ ứng dụng khách bằng cách sử dụng boost :: asio SSL?
- 2. Ứng dụng ASP.NET MVC an toàn với chứng thực SSL và chứng chỉ ứng dụng khách
- 3. Microsoft HTTP Server API - sử dụng SSL, cách yêu cầu chứng chỉ ứng dụng khách?
- 4. Sử dụng chứng chỉ Wcf SSl trên Tcp mà không có chứng chỉ ứng dụng khách (chỉ phía máy chủ)
- 5. Sử dụng LWP với SSL và chứng chỉ ứng dụng khách
- 6. Lỗi SSL - Nhận ngoại lệ SSL/TLS khi sử dụng HttpWebRequest với chứng chỉ ứng dụng khách
- 7. Ứng dụng khách OpenSSL không gửi chứng chỉ ứng dụng khách
- 8. Cách xác thực chứng chỉ ứng dụng khách với Apache
- 9. Sử dụng chứng chỉ ứng dụng khách không có trong kho chứng chỉ
- 10. Nginx; cách sử dụng OCSP để xác minh chứng chỉ máy khách SSL
- 11. Tôi làm cách nào để hỗ trợ xác thực Chứng chỉ ứng dụng khách SSL?
- 12. https đăng xuất chứng chỉ ứng dụng khách/relogin
- 13. Tạo chứng chỉ ứng dụng khách trên thiết bị Android
- 14. Cách sử dụng Xác thực chứng chỉ ứng dụng khách trong ứng dụng iOS
- 15. đọc chứng chỉ ứng dụng khách từ httprequest C#
- 16. Cách sử dụng chứng chỉ * .pfx cho Amazon ELB SSL
- 17. Xác thực chứng chỉ ứng dụng khách Java HTTPS
- 18. WebView với Chứng chỉ ứng dụng khách SSL trên Android 4 ICS
- 19. Thêm ứng dụng lập trình trong Azure AD bằng cách sử dụng dòng chứng chỉ ứng dụng khách
- 20. Cầu tàu yêu cầu chứng chỉ ứng dụng khách SSL theo URL
- 21. Xóa trạng thái chứng chỉ ứng dụng khách ssl từ javascript
- 22. Chứng chỉ ứng dụng khách HTTPS với Monotouch
- 23. Trang web Xác thực thẻ thông minh PKSC# 11 và chứng chỉ ứng dụng khách SSL
- 24. cách xác thực chứng chỉ ứng dụng khách sử dụng chứng chỉ CA được internediate đáng tin cậy?
- 25. Yêu cầu chứng chỉ ứng dụng khách với Asp.net MVC
- 26. Tôi làm cách nào để cung cấp chứng chỉ SSL với ứng dụng tạo phản ứng?
- 27. Xác thực ứng dụng khách Tomcat bằng SSL
- 28. Xác thực chứng chỉ ứng dụng khách trong PyOpenSSL
- 29. Chứng chỉ SSL trong Ứng dụng khách REST nâng cao dành cho Chrome
- 30. Ứng dụng khách SSL trên Android