Tôi đang thực hiện một kịch bản đơn giản liên quan đến kiểm tra bảo mật CAS, JSPRING, chuyển hướng, v.v. Tôi muốn sử dụng các yêu cầu Python của Kenneth Reitz vì đó là một tác phẩm tuyệt vời! Tuy nhiên, CAS yêu cầu được xác thực qua SSL vì vậy tôi phải vượt qua bước đó trước. Tôi không biết những yêu cầu của Python đang muốn gì? Chứng chỉ SSL này phải cư trú ở đâu?
Andrew Brēza 7.1573 Huy hiệu vàng33 Huy hiệu bạc40 Huy hiệu đồng3 gold badges33 silver badges40 bronze badges Hỏi ngày 19 tháng 5 năm 2012 lúc 18:45May 19, 2012 at 18:45
4 Vấn đề bạn đang gặp phải là do chứng chỉ SSL không đáng tin cậy. Giống như @Dirk được đề cập trong một bình luận trước, bản sửa lỗi nhanh nhất là cài đặt 4:
Xin lưu ý rằng điều này sẽ khiến chứng chỉ không được xác minh. Điều này sẽ đưa ứng dụng của bạn vào các rủi ro bảo mật, chẳng hạn như các cuộc tấn công giữa các trung gian.This will expose your application to security risks, such as man-in-the-middle attacks. Tất nhiên, áp dụng phán đoán. Như đã đề cập trong các ý kiến, điều này có thể được chấp nhận đối với các ứng dụng/tập lệnh nhanh chóng/vứt bỏ, nhưng thực sự không nên chuyển sang phần mềm sản xuất. Nếu chỉ bỏ qua kiểm tra chứng chỉ là không thể chấp nhận được trong bối cảnh cụ thể của bạn, hãy xem xét các tùy chọn sau, tùy chọn tốt nhất của bạn là đặt tham số 5 thành một chuỗi là đường dẫn của tệp 6 của chứng chỉ (mà bạn nên lấy theo một loại nào đó có phương tiện an toàn).Vì vậy, kể từ phiên bản 2.0, tham số 5 chấp nhận các giá trị sau, với ngữ nghĩa tương ứng của chúng:
Nguồn: Yêu cầu - Xác minh chứng nhận SSL Ngoài ra, hãy xem tham số 0 trên cùng một liên kết.
Đã trả lời ngày 12 tháng 10 năm 2012 lúc 18:19Oct 12, 2012 at 18:19
Rafael Almeidarafael AlmeidaRafael Almeida 9,9646 Huy hiệu vàng43 Huy hiệu bạc60 Huy hiệu Đồng6 gold badges43 silver badges60 bronze badges 15 Từ tài liệu yêu cầu về xác minh SSL:
Nếu bạn không muốn xác minh chứng chỉ SSL của mình, hãy tạo 4
Ostergaard 3.2512 Huy hiệu vàng28 Huy hiệu bạc39 Huy hiệu đồng2 gold badges28 silver badges39 bronze badges Đã trả lời ngày 19 tháng 5 năm 2012 lúc 19:20May 19, 2012 at 19:20
ZeugmazeugmaZeugma 30.1k8 Huy hiệu vàng64 Huy hiệu bạc78 Huy hiệu đồng8 gold badges64 silver badges78 bronze badges 8 Tên của tệp CA để sử dụng bạn có thể vượt qua 5:
Nếu bạn sử dụng 3 thì 4 sử dụng bộ CA của riêng mình có thể không có CA đã ký chứng chỉ máy chủ của bạn.Đã trả lời ngày 12 tháng 10 năm 2012 lúc 18:38Oct 12, 2012 at 18:38
JFSJFSjfs 385K183 Huy hiệu vàng950 Huy hiệu bạc1626 Huy hiệu Đồng183 gold badges950 silver badges1626 bronze badges 9 Tôi đã gặp phải vấn đề tương tự và chứng chỉ SSL xác minh sự cố không thành công khi sử dụng AWS BOTO3, bằng cách xem xét mã BOTO3, tôi thấy 5 không được đặt, vì vậy tôi đã sửa lỗi cả bằng cách đặt nó theo cách thủ công:
Đối với AWS-CLI, tôi đoán cài đặt Yêu cầu_ca_bundle trong 6 sẽ khắc phục sự cố này (không được kiểm tra vì AWS-CLI của tôi hoạt động mà không có nó).
Rodorgas 8902 Huy hiệu vàng11 Huy hiệu bạc29 Huy hiệu đồng2 gold badges11 silver badges29 bronze badges Đã trả lời ngày 15 tháng 11 năm 2015 lúc 7:47Nov 15, 2015 at 7:47
YongyongYong 6115 Huy hiệu bạc3 Huy hiệu đồng5 silver badges3 bronze badges 4 7
Khi câu hỏi này được mở (2012-05), phiên bản yêu cầu là 0,13,1. Trên phiên bản 2.4.1 (2014-09) Các tính năng bổ sung "bảo mật" đã được giới thiệu, sử dụng gói 8 nếu có.Ngay bây giờ (2016-09) Phiên bản chính là 2.11.1, hoạt động tốt mà không cần 4. Không cần sử dụng 0, nếu được cài đặt với các tính năng bổ sung 1.without 4. No need to use 0, if installed with 1 extras.Đã trả lời ngày 19 tháng 9 năm 2016 lúc 18:57Sep 19, 2016 at 18:57
Alanjdsalanjdsalanjds 3,8042 Huy hiệu vàng33 Huy hiệu bạc43 Huy hiệu đồng2 gold badges33 silver badges43 bronze badges 6 Trong trường hợp bạn có một thư viện dựa trên 4 và bạn không thể sửa đổi đường dẫn xác minh (như với 3) thì bạn sẽ phải tìm 4 đi kèm với các yêu cầu và nối CA của bạn ở đó. Đây là cách tiếp cận chung để tìm vị trí 4:các cửa sổ
Linux
BTW. @Yêu cầu-Devs, đóng gói cacert của riêng bạn với yêu cầu thực sự, thực sự khó chịu ... đặc biệt là bạn dường như không sử dụng cửa hàng CA System CA trước và điều này không được ghi nhận ở bất cứ đâu. cập nhật Trong các tình huống, nơi bạn đang sử dụng thư viện và không có quyền kiểm soát vị trí CA-Bundle, bạn cũng có thể đặt rõ ràng vị trí CA-Bundle để trở thành CA-Bundle trên toàn bộ máy chủ của bạn:
ibre5041 4.5931 Huy hiệu vàng17 Huy hiệu bạc33 Huy hiệu đồng1 gold badge17 silver badges33 bronze badges Đã trả lời ngày 4 tháng 3 năm 2016 lúc 8:38Mar 4, 2016 at 8:38
Tintintintintintin 3.05630 huy hiệu bạc34 Huy hiệu đồng30 silver badges34 bronze badges 3 Như người khác chỉ ra, vấn đề này "là do chứng chỉ SSL không đáng tin cậy". Câu trả lời của tôi dựa trên câu trả lời được xếp hạng hàng đầu và câu trả lời này. Bạn có thể kiểm tra chứng chỉ bằng 6:
Nếu một lỗi trả về, bạn có 3 tùy chọn:
1
Vấn đề của tôi là vì tôi chỉ sử dụng chứng chỉ trang web của mình chứ không phải chứng chỉ trung gian (chuỗi a.k.a.). Nếu bạn đang sử dụng Let's Encrypt, bạn nên sử dụng tệp 7 chứ không phải 8.Đã trả lời ngày 20 tháng 11 năm 2020 lúc 15:09Nov 20, 2020 at 15:09
1 Nếu bạn muốn xóa các cảnh báo, hãy sử dụng mã bên dưới. 2và 4 với phương pháp 0 hoặc 1
Đã trả lời ngày 3 tháng 11 năm 2015 lúc 7:42Nov 3, 2015 at 7:42
AniketgoleaniketgoleAniketGole 7301 huy hiệu vàng9 Huy hiệu bạc22 Huy hiệu đồng1 gold badge9 silver badges22 bronze badges 0 Tôi phải đối mặt với cùng một vấn đề bằng cách sử dụng GSPREAD và các lệnh này hoạt động với tôi: 3Đã trả lời ngày 16 tháng 2 năm 2016 lúc 4:53Feb 16, 2016 at 4:53
user941581user941581user941581 3492 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges 3 Tôi đã tìm thấy một cách tiếp cận cụ thể để giải quyết một vấn đề tương tự. Ý tưởng là trỏ tệp cacert được lưu trữ tại hệ thống và được sử dụng bởi các ứng dụng dựa trên SSL khác. Trong Debian (Tôi không chắc chắn nếu giống nhau trong các phân phối khác) Các tệp chứng chỉ (.pem) được lưu trữ tại 2 Vì vậy, đây là mã hoạt động cho tôi: 4Để đoán xem tệp 3 chọn gì, tôi đã duyệt đến URL và kiểm tra cơ quan chứng chỉ (CA) nào đã tạo chứng chỉ.Chỉnh sửa: Nếu bạn không thể chỉnh sửa mã (vì bạn đang chạy ứng dụng thứ ba), bạn có thể thử thêm chứng chỉ 3 trực tiếp vào 5 (ví dụ: sao chép nó vào cuối tệp).
Nsnoob 5.4886 Huy hiệu vàng41 Huy hiệu bạc53 Huy hiệu Đồng6 gold badges41 silver badges53 bronze badges Đã trả lời ngày 18 tháng 4 năm 2013 lúc 14:29Apr 18, 2013 at 14:29
Slamoraslamoraslamora 66510 Huy hiệu bạc15 Huy hiệu Đồng10 silver badges15 bronze badges 2 Nếu bạn không bận tâm về chứng chỉ, chỉ cần sử dụng 4. 5
Đã trả lời ngày 21 tháng 5 năm 2015 lúc 12:01May 21, 2015 at 12:01
Sau nhiều giờ gỡ lỗi, tôi chỉ có thể khiến nó hoạt động bằng cách sử dụng các gói sau: 6Sử dụng 7Không có các gói này 4 không hoạt động.Tôi hi vọng điêu nay se giup được ai đo. Đã trả lời ngày 20 tháng 7 năm 2017 lúc 20:10Jul 20, 2017 at 20:10
Michaelmichaelmichael 5727 Huy hiệu bạc11 Huy hiệu đồng7 silver badges11 bronze badges Tôi đã gặp phải vấn đề tương tự. Hóa ra tôi đã không cài đặt chứng chỉ trung gian trên máy chủ của mình (chỉ cần nối nó vào cuối chứng chỉ của bạn như được thấy bên dưới). https://www.digicert.com/ssl-support/pem-ssl-creation.htm Đảm bảo bạn đã cài đặt gói CA chứng nhận CA: 7Cập nhật thời gian cũng có thể giải quyết điều này: 8Nếu bạn đang sử dụng chứng chỉ tự ký, có lẽ bạn sẽ phải thêm nó vào hệ thống của mình theo cách thủ công. Đã trả lời ngày 13 tháng 6 năm 2014 lúc 19:19Jun 13, 2014 at 19:19
2 Nếu các cuộc gọi yêu cầu được chôn ở đâu đó sâu trong mã và bạn không muốn cài đặt chứng chỉ máy chủ, thì chỉ cho mục đích gỡ lỗi, có thể các yêu cầu của MonkeyPatch:debug purposes only, it's possible to monkeypatch requests: 9Không bao giờ sử dụng trong sản xuất! Đã trả lời ngày 29 tháng 8 năm 2017 lúc 6:06Aug 29, 2017 at 6:06
xmedekoxmedekoxmedeko 6,8256 Huy hiệu vàng 50 Huy hiệu bạc82 Huy hiệu Đồng6 gold badges50 silver badges82 bronze badges Quá muộn cho bữa tiệc tôi đoán nhưng tôi muốn dán bản sửa lỗi cho những kẻ lang thang như tôi! Vì vậy, những điều sau đây đã làm việc cho tôi trên Python 3.7.x Nhập những thứ sau trong thiết bị đầu cuối của bạn 0Hãy thử chạy lại tập lệnh/yêu cầu của bạn và xem nó có hoạt động không (tôi chắc chắn nó sẽ không được sửa!). Nếu nó không hoạt động thì hãy thử chạy lệnh sau trong thiết bị đầu cuối trực tiếp 1Đã trả lời ngày 29 tháng 11 năm 2018 lúc 11:32Nov 29, 2018 at 11:32
d-coderd-coderd-coder 11.6K4 Huy hiệu vàng25 Huy hiệu bạc35 Huy hiệu Đồng4 gold badges25 silver badges35 bronze badges Điều này tương tự như câu trả lời của @Rafael-Almeida, nhưng tôi muốn chỉ ra rằng theo yêu cầu 2.11+, không có 3 giá trị mà 5 có thể thực hiện, thực sự có 4:
Phần còn lại của câu trả lời của tôi là khoảng 4, cách sử dụng thư mục chứa chứng chỉ để xác nhận: Có được các chứng chỉ công cộng cần thiết và đặt chúng vào một thư mục. Nói đúng ra, bạn có thể "nên" sử dụng một phương thức ngoài băng tần để có được chứng chỉ, nhưng bạn cũng có thể tải chúng bằng cách sử dụng bất kỳ trình duyệt nào. Nếu máy chủ sử dụng chuỗi chứng chỉ, hãy chắc chắn để có được mỗi chứng chỉ trong chuỗi. Theo tài liệu yêu cầu, thư mục có chứa chứng chỉ trước tiên phải được xử lý với tiện ích "Rehash" ( 2).. Master/Sample/c_rehash.rb, mặc dù tôi chưa thử điều này.) Tôi đã gặp một số rắc rối với việc nhận được các yêu cầu để nhận biết chứng chỉ của mình, nhưng sau khi tôi sử dụng lệnh 4 để chuyển đổi CERTS thành định dạng Base64 6, mọi thứ đều hoạt động hoàn hảo.Bạn cũng có thể chỉ làm Lazy Rehashing: 2Đã trả lời ngày 10 tháng 10 năm 2019 lúc 20:44Oct 10, 2019 at 20:44
CowlinatorCowLinatorcowlinator 6.2496 Huy hiệu vàng39 Huy hiệu bạc55 Huy hiệu Đồng6 gold badges39 silver badges55 bronze badges Tôi đã chiến đấu với vấn đề này trong nhiều giờ. Tôi đã cố gắng cập nhật các yêu cầu. Sau đó, tôi đã cập nhật Certifi. Tôi đã chỉ xác minh đến certifi.where () (mã thực hiện điều này theo mặc định dù sao). Không có gì làm việc. Cuối cùng tôi đã cập nhật phiên bản Python lên Python 2.7.11 của mình. Tôi đã ở trên Python 2.7.5 có một số không tương thích với cách xác minh chứng chỉ. Khi tôi cập nhật Python (và một số ít phụ thuộc khác), nó bắt đầu hoạt động. Đã trả lời ngày 6 tháng 5 năm 2016 lúc 21:13May 6, 2016 at 21:13
Ajonajonajon 7,64011 Huy hiệu vàng47 Huy hiệu bạc85 Huy hiệu Đồng11 gold badges47 silver badges85 bronze badges 2 Một số máy chủ không có chứng nhận gốc đáng tin cậy cho LetSenCrypt. Ví dụ: giả sử máy chủ được chỉ bởi URL bên dưới được bảo vệ bởi SSL LetSenCrypt. 3Yêu cầu này có thể thất bại với [ssl: cerpilate_verify_failed] vì máy chủ yêu cầu không có chứng nhận gốc cho LetSenCrypt. Khi điều này xảy ra, hãy tải xuống chứng nhận 'PEM' tự ký hoạt động từ liên kết bên dưới. https://letsencrypt.org/certicates/. (Active ISRG Root X1 Khi viết bài này)Active ISRG Root X1 as of this writing) Bây giờ, sử dụng nó trong tham số xác minh như sau. 4
Đã trả lời ngày 20 tháng 10 năm 2021 lúc 20:09Oct 20, 2021 at 20:09
Hiện tại có một vấn đề trong mô -đun yêu cầu gây ra lỗi này, có trong v2.6.2 đến v2.12.4 (atow): https://github.com/kennethreitz/requests/issues/2573 Giải pháp cho vấn đề này là thêm dòng sau: 6Đã trả lời ngày 15 tháng 1 năm 2017 lúc 20:10Jan 15, 2017 at 20:10
PeterpeterPeter 1.24211 huy hiệu bạc11 huy hiệu đồng11 silver badges11 bronze badges 1 Như đã đề cập bởi @rafael Almeida, vấn đề bạn đang gặp phải là do chứng chỉ SSL không đáng tin cậy. Trong trường hợp của tôi, chứng chỉ SSL không được máy chủ của tôi không tin tưởng. Để khắc phục điều này mà không ảnh hưởng đến bảo mật, tôi đã tải xuống chứng chỉ và cài đặt nó trên máy chủ (chỉ bằng cách nhấp đúp vào tệp .CRT và sau đó cài đặt chứng chỉ ...). Đã trả lời ngày 14 tháng 6 năm 2017 lúc 11:07Jun 14, 2017 at 11:07
MichaelmichaelMichael Huy hiệu đồng bạc 19911 silver badge9 bronze badges Trong trường hợp của tôi, lý do khá tầm thường. Tôi đã biết rằng việc xác minh SSL đã hoạt động cho đến một vài ngày trước đó, và đang hoạt động trên một máy khác. Bước tiếp theo của tôi là so sánh nội dung và kích thước chứng chỉ giữa máy mà xác minh đang hoạt động và cái mà nó không phải là. Điều này nhanh chóng dẫn đến việc tôi xác định rằng chứng chỉ trên máy làm việc 'không chính xác' không tốt và một khi tôi đã thay thế nó bằng chứng chỉ 'tốt', mọi thứ đều ổn. Đã trả lời ngày 30 tháng 4 năm 2019 lúc 11:59Apr 30, 2019 at 11:59
1
Tôi nghĩ rằng bạn có một số cách để khắc phục vấn đề này. Tôi đã đề cập đến 5 cách dưới đây:
5
6
7
8
9Đã trả lời ngày 7 tháng 8 lúc 19:07Aug 7 at 19:07
Ali Zahedigolali ZahedigolAli ZahediGol 6082 Huy hiệu vàng8 Huy hiệu bạc18 Huy hiệu đồng2 gold badges8 silver badges18 bronze badges 1 Không khả thi để thêm các tùy chọn nếu các yêu cầu được gọi từ một gói khác. Trong trường hợp đó, việc thêm chứng chỉ vào gói cacert là đường thẳng, ví dụ: Tôi đã phải thêm "Máy chủ trung gian chính của StartCom Class 1", trong đó tôi đã tải xuống chứng chỉ gốc vào StartComClass1.pem. Cho VirtualEnv của tôi có tên là Caldav, tôi đã thêm chứng chỉ với: 0một trong số đó có thể là đủ, tôi đã không kiểm tra Đã trả lời ngày 3 tháng 8 năm 2015 lúc 17:29Aug 3, 2015 at 17:29
Rhoerberhoerberhoerbe 4531 Huy hiệu vàng4 Huy hiệu bạc17 Huy hiệu đồng1 gold badge4 silver badges17 bronze badges Tôi đã có một vấn đề xác nhận chứng nhận tương tự hoặc tương tự. Tôi đọc rằng các phiên bản OpenSSL nhỏ hơn 1.0.2, yêu cầu phụ thuộc vào đôi khi gặp khó khăn trong việc xác nhận chứng chỉ mạnh (xem tại đây). Centos 7 dường như sử dụng 1.0.1E dường như có vấn đề. Tôi không chắc chắn làm thế nào để giải quyết vấn đề này trên Centos, vì vậy tôi quyết định cho phép chứng chỉ CA 1024bit yếu hơn. 1Đã trả lời ngày 11 tháng 7 năm 2017 lúc 13:26Jul 11, 2017 at 13:26
1 Tôi đã phải nâng cấp từ Python 3.4.0 lên 3.4.6 2Đã trả lời ngày 7 tháng 3 năm 2018 lúc 23:22Mar 7, 2018 at 23:22
PaulpaulPaul 2.3492 Huy hiệu vàng24 Huy hiệu bạc29 Huy hiệu đồng2 gold badges24 silver badges29 bronze badges Tôi đã tìm thấy câu trả lời này đã sửa nó: 3Tôi không biết nó làm gì, mặc dù. Đã trả lời ngày 2 tháng 10 năm 2021 lúc 6:41Oct 2, 2021 at 6:41
Urban P.urban P.Urban P. 1291 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges Khi nó nói 5 lấy 'đường dẫn đến chứng chỉ', tôi đã chỉ nó vào chứng chỉ của tổ chức phát hành để nó có thể sử dụng nó để xác minh chứng chỉ URL. 6 và 1 vẫn ổn với chứng chỉ đó. Nhưng không phải là yêu cầu Python.Tôi đã phải tạo một chuỗi chứng chỉ với tất cả các chứng chỉ từ cuối (lá?) Để root cho các yêu cầu Python để xử lý nó tốt.Và chuỗi hoạt động tốt với Curl và Wget quá tự nhiên. Hy vọng nó sẽ giúp ai đó và tiết kiệm vài giờ. Đã trả lời ngày 27 tháng 10 lúc 11:54Oct 27 at 11:54
Đây chỉ là một cách khác bạn có thể cố gắng giải quyết vấn đề. Nếu bạn đặt "www.example.com", hãy yêu cầu bạn hét lên với bạn.Nếu bạn đặt "https://www.example.com", bạn sẽ gặp lỗi này.Vì vậy, nếu bạn không cần HTTPS, bạn có thể tránh được lỗi bằng cách thay đổi "https" thành "http".ví dụ."http://www.example.com" Cảnh báo: Không sử dụng HTTPS thường không phải là một ý tưởng tốt.Xem tại sao HTTPS cho mọi thứ?Tại sao HTTPS lại quan trọng. See Why HTTPS for Everything? Why HTTPS matters
Đã trả lời ngày 2 tháng 9 năm 2020 lúc 8:09Sep 2, 2020 at 8:09
Mặc định mặc địnhDefault 6349 Huy hiệu bạc17 Huy hiệu đồng9 silver badges17 bronze badges |