Tổ chức phát hành chứng chỉ tự ký pip
/conda
Sau khi ghi lại toàn bộ vấn đề tương tự với Git ( Làm cách nào để git chấp nhận chứng chỉ tự ký? ), Ở đây chúng ta lại đứng sau tường lửa công ty với proxy cho chúng ta một "cuộc tấn công" MitM mà chúng ta nên tin tưởng và:
KHÔNG BAO GIỜ vô hiệu hóa tất cả xác minh SSL!
Điều này tạo ra một văn hóa bảo mật xấu. Đừng là người đó.
tl; dr
pip config set global.cert path/to/ca-bundle.crt
pip config list
conda config --set ssl_verify path/to/ca-bundle.crt
conda config --show ssl_verify
git config --global http.sslVerify true
git config --global http.sslCAInfo path/to/ca-bundle.crt
Nhưng chúng ta lấy ở ca-bundle.crt
đâu?
Nhận Gói CA cập nhật
cURL xuất bản bản trích xuất của Tổ chức phát hành chứng chỉ đi kèm với Mozilla Firefox
https://curl.haxx.se/docs/caextract.html
Tôi khuyên bạn nên mở cacert.pem
tệp này trong trình soạn thảo văn bản vì chúng tôi sẽ cần thêm CA tự ký của mình vào tệp này.
Chứng chỉ là một tài liệu tuân thủ X.509 nhưng chúng có thể được mã hóa vào đĩa theo một số cách. Bài viết dưới đây là một bài đọc tốt nhưng phiên bản ngắn là chúng tôi đang xử lý mã hóa base64 thường được gọi là PEM trong phần mở rộng tệp. Bạn sẽ thấy nó có định dạng:
----BEGIN CERTIFICATE----
....
base64 encoded binary data
....
----END CERTIFICATE----
https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them
Nhận chứng chỉ tự ký của chúng tôi
Dưới đây là một số tùy chọn về cách nhận chứng chỉ tự ký của chúng tôi:
- Qua OpenSSL CLI
- Qua trình duyệt
- Qua Python Scripting
Nhận chứng chỉ tự ký của chúng tôi bằng OpenSSL CLI
/unix/451207/how-to-trust-self-signed-certificate-in-curl-command-line/468360#468360
echo quit | openssl s_client -showcerts -servername "curl.haxx.se" -connect curl.haxx.se:443 > cacert.pem
Nhận Tổ chức phát hành chứng chỉ tự ký của chúng tôi thông qua trình duyệt
Nhờ câu trả lời này và blog được liên kết, nó hiển thị các bước (trên Windows) cách xem chứng chỉ và sau đó sao chép vào tệp bằng tùy chọn mã hóa PEM base64.
Sao chép nội dung của tệp đã xuất này và dán vào cuối cacerts.pem
tệp của bạn .
Để có tính nhất quán, hãy đổi tên tệp này cacerts.pem
-> ca-bundle.crt
và đặt nó ở đâu đó dễ dàng như:
%USERPROFILE%\certs\ca-bundle.crt
$HOME/certs/cabundle.crt
Nhận Tổ chức phát hành chứng chỉ tự ký của chúng tôi qua Python
Cảm ơn tất cả các câu trả lời tuyệt vời trong:
Làm cách nào để nhận chứng chỉ SSL phản hồi từ các yêu cầu trong python?
Tôi đã tổng hợp những điều sau đây để cố gắng tiến thêm một bước nữa.
https://github.com/neozenith/get-ca-py
Cuối cùng
Đặt cấu hình trong pip và conda để nó biết nơi cư trú của cửa hàng CA này với CA tự ký bổ sung của chúng tôi.
pip config set global.cert %USERPROFILE%\certs\ca-bundle.crt
conda config --set ssl_verify %USERPROFILE%\certs\ca-bundle.crt
HOẶC LÀ
pip config set global.cert $HOME/certs/ca-bundle.crt
conda config --set ssl_verify $HOME/certs/ca-bundle.crt
SAU ĐÓ
pip config list
conda config --show ssl_verify
pip config list -v
For variant 'global', will try loading '/Library/Application Support/pip/pip.conf'
For variant 'user', will try loading '/Users/jpeak/.pip/pip.conf'
For variant 'user', will try loading '/Users/jpeak/.config/pip/pip.conf'
For variant 'site', will try loading '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/pip.conf'
Người giới thiệu