Hướng dẫn python download certificate - chứng chỉ tải xuống python
Tôi có một bản cài đặt Python từ môi trường Anaconda. Nếu tôi kiểm tra nơi Python đang tìm chứng chỉ SSL với mã bên dưới, tôi sẽ nhận được kết quả kỳ lạ:
Đầu ra là:
Điều này không có ý nghĩa với tôi: Tại sao các đường dẫn theo "phong cách Linux"? Tôi đang cố gắng thực hiện các yêu cầu API với gói 0 và tôi đang gặp lỗi SSL.Làm thế nào tôi có thể thay đổi các biến đường dẫn? Làm thế nào tôi có thể ngăn chặn điều này ngay từ đầu (mặc dù vậy, việc cài đặt Anaconda không phải do tôi, mà là chủ nhân của tôi)? Thông tin lai lịchThư viện tiêu chuẩn Python bao gồm nhiều mô -đun cung cấp chức năng máy khách HTTP, bao gồm ____10, 1, 2 và 3. Mặc dù các mô -đun này hỗ trợ các kết nối HTTPS, nhưng theo truyền thống, chúng không thực hiện xác minh chứng chỉ được trình bày bởi các máy chủ HTTPS và không cung cấp cách nào để dễ dàng kích hoạt xác minh đó. Điều này có thể cho phép những kẻ tấn công người đàn ông trong trung gian (MITM) dễ dàng chiếm quyền điều khiển các kết nối HTTPS từ các máy khách Python sang nghe lén hoặc sửa đổi dữ liệu được chuyển.Việc thiếu xác minh chứng chỉ này đã được biết đến và thường làm việc xung quanh trong các trường hợp sử dụng có liên quan bằng cách thực hiện xác minh trong các ứng dụng hoặc bằng cách sử dụng các thư viện máy khách HTTP khác nhau thực hiện xác minh chứng chỉ. Các công cụ quản lý gói trong Red Hat Enterprise Linux có thể được sử dụng làm ví dụ: Trình quản lý gói YUM được sử dụng trong Red Hat Enterprise Linux 5, 6 và 7 sử dụng mô-đun Python-Pycurl, một trình bao bọc xung quanh thư viện Curl/Libcurl, thực hiện xác minh chứng chỉ; Trình quản lý gói UP2Date như được sử dụng trong Red Hat Enterprise Linux 4 và trước đó đã triển khai xác minh chứng chỉ bằng mô -đun M2Crypto. Mặc dù giới hạn này đã được biết đến, nhiều tác giả ứng dụng đã không nhận thức được nó hoặc giả định rằng tất cả các kiểm tra dự kiến đã được thực hiện. Điều đó dẫn đến các báo cáo về một số lỗ hổng bảo mật theo thời gian và việc gán CVE-2014-9365 để thiếu xác minh chứng chỉ trong các máy khách HTTP của Thư viện tiêu chuẩn Python. Nghị quyếtĐộ phân giải ngược dòngCác nhà phát triển ngược dòng Python đã quyết định giải quyết vấn đề bằng cách cho phép xác minh chứng chỉ theo mặc định. Sự thay đổi đã được thực hiện thông qua đề xuất tăng cường Python PEP 476 (cho phép xác minh chứng chỉ theo mặc định cho các máy khách Stdlib HTTP) và áp dụng cho cả hai nhánh phát triển hiện tại trong phiên bản 3.4.3 và nhánh bảo trì kế thừa trong phiên bản 2.7.9. Đây là một thay đổi gây tranh cãi cho nhánh Legacy 2.7 vì người ta biết có các vấn đề tương thích ngược liên quan đến nó. Việc triển khai cố ý hoặc vô ý dựa vào hành vi cũ mà thiếu bất kỳ xác minh nào dự kiến sẽ bị phá vỡ khi phiên bản Python cập nhật được sử dụng. Do đó, điều này có thể ngăn người dùng áp dụng các phiên bản Python được vá. Trong nỗ lực giải quyết các vấn đề tương thích này và cung cấp sự chuyển đổi mượt mà hơn sang mặc định an toàn hơn, Red Hat đã làm việc với các thành viên cộng đồng Python để xác định các cơ chế để cho phép người dùng và quản trị viên kiểm soát xem có nên thực hiện xác minh chứng chỉ mà không cần sửa đổi các ứng dụng riêng lẻ hay không. Các cơ chế này được mô tả trong PEP 493 (các công cụ di chuyển xác minh HTTPS cho Python 2.7). Red Hat Enterprise Linux 7 Nghị quyếtPhiên bản Python có trong Red Hat Enterprise Linux 7 được dựa trên phiên bản ngược dòng 2.7.5 và do đó không thực hiện xác minh chứng chỉ. Sự hỗ trợ cho PEP 476 (cùng với PEP 466 cần thiết (cải tiến bảo mật mạng cho Python 2.7.x)) lần đầu tiên được thêm vào thông qua RHSA-2015: 2101 được phát hành như một phần của Red Hat Enterprise Linux 7.2. Bản cập nhật RHSA-2015: 2101 bổ sung hỗ trợ cho PEP 476, tuy nhiên do lý do tương thích ngược, nó vô hiệu hóa xác minh chứng chỉ theo mặc định. Nó cũng thực hiện hỗ trợ cho tệp cấu hình 4 được mô tả trong phần "Backporting PEP 476 đến các phiên bản Python trước đó" của PEP 493. Với hỗ trợ này, xác minh chứng chỉ có thể được bật theo mặc định.Sự hỗ trợ cho PEP 493 trong Red Hat Enterprise Linux 7 đã được mở rộng thêm thông qua RHSA-2016: 2586 được phát hành như một phần của Red Hat Enterprise Linux 7.3. Bản cập nhật thêm các tính năng sau:
Xác minh chứng chỉ đã được bật theo mặc định thông qua RHSA-2017: 1868 được phát hành như một phần của Red Hat Enterprise Linux 7.4. Việc triển khai yêu cầu xác minh chứng chỉ để duy trì bị vô hiệu hóa có thể thay đổi mặc định trong thông qua tệp cấu hình 4. Tham khảo phần "Xác minh chứng chỉ kiểm soát" bên dưới để biết thêm chi tiết.Độ phân giải bộ sưu tập phần mềm Red HatPhiên bản Python được sử dụng trong bộ sưu tập 21 dựa trên phiên bản ngược dòng 3.4.2. Tuy nhiên, hỗ trợ PEP 476 đã được đưa vào phiên bản này và được bao gồm kể từ lần phát hành đầu tiên thông qua Rhea-2015: 1058, được phát hành như một phần của Red Hat Software Collection 2.0, với xác minh chứng chỉ được bật theo mặc định. Nó không bao gồm bất kỳ hỗ trợ nào cho PEP 493 và do đó không thể vô hiệu hóa xác minh theo mặc định thông qua tệp cấu hình 4. Các mẹo khắc phục sự cố được ghi nhận dưới đây cũng có thể áp dụng cho phiên bản này.Phiên bản Python có trong bộ sưu tập 23 ban đầu dựa trên phiên bản ngược dòng 2.7.5 và sau đó được cập nhật lên phiên bản ngược dòng 2.7.8, và do đó không thực hiện xác minh chứng chỉ. Hỗ trợ cho PEP 476 lần đầu tiên được thêm vào thông qua RHSA-2016: 1166 được phát hành như một phần của Bộ sưu tập phần mềm Red Hat 2.2.Bản cập nhật RHSA-2016: 1166 bổ sung hỗ trợ cho PEP 476, tuy nhiên do lý do tương thích ngược, nó vô hiệu hóa xác minh chứng chỉ theo mặc định. Nó cũng thực hiện hỗ trợ cho tệp cấu hình 4 được mô tả trong phần "Backporting PEP 476 đến các phiên bản Python trước đó" của PEP 493. Bộ sưu tập 23 lưu trữ tệp cấu hình 4 trong thư mục 27 thay vì thư mục 28. Với hỗ trợ này, xác minh chứng chỉ có thể được bật theo mặc định.Sự hỗ trợ cho PEP 493 trong bộ sưu tập 23 đã được mở rộng thêm thông qua RHSA-2017: 1162 được phát hành như một phần của Red Hat Software Collection 2.4. Erratum đó cập nhật Python lên phiên bản 2.7.13 và do đó cho phép xác minh chứng chỉ theo mặc định. Nó cũng bổ sung hỗ trợ cho các tính năng bổ sung được xác định trong PEP 493: "Tính năng: Cấu hình dựa trên môi trường" và "Tính năng: API cấu hình". Tham khảo phần "Red Hat Enterprise Linux 7 Nghị quyết" ở trên để biết thêm chi tiết về các tính năng này.Phiên bản Python được sử dụng trong bộ sưu tập 21 dựa trên phiên bản ngược dòng 3.4.2. Tuy nhiên, hỗ trợ PEP 476 đã được đưa vào phiên bản này và được bao gồm kể từ lần phát hành đầu tiên thông qua Rhea-2015: 1058, được phát hành như một phần của Red Hat Software Collection 2.0, với xác minh chứng chỉ được bật theo mặc định. Nó không bao gồm bất kỳ hỗ trợ nào cho PEP 493 và do đó không thể vô hiệu hóa xác minh theo mặc định thông qua tệp cấu hình 4. Các mẹo khắc phục sự cố được ghi nhận dưới đây cũng có thể áp dụng cho phiên bản này.Phiên bản Python có trong bộ sưu tập
DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/usr/local/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/usr/local/ssl/certs')
|