Python Requests: οι δέσμες CA ανήκουν στο verify, όχι στο cert
Βάλτε το εγκεκριμένο υλικό εμπιστοσύνης CA στη διαμόρφωση επαλήθευσης αντί να αντιμετωπίζετε ένα σφάλμα πιστοποιητικού ως αίτημα για το ιδιωτικό κλειδί του πελάτη.
Ένας συνάδελφος σας δίνει το πιστοποιητικό CA του οργανισμού. Το Requests προσφέρει μια παράμετρο που ονομάζεται cert. Τα ονόματα μοιάζουν να ταιριάζουν, αλλά απαντούν σε διαφορετικά ερωτήματα.
| Ρύθμιση | Σκοπός |
|---|---|
verify | Επιλέγει το υλικό εμπιστοσύνης που χρησιμοποιείται για την επαλήθευση του ομολόγου |
cert | Παρουσιάζει πιστοποιητικό πελάτη, με το ιδιωτικό του κλειδί, όταν απαιτείται έλεγχος ταυτότητας πελάτη |
Για μια εγκεκριμένη CA υποκλοπής, μια λειτουργία Requests μπορεί να επιλέξει τη σωστή δέσμη CA:
response = requests.get(
'https://example.com/',
proxies=routes,
verify='/path/to/approved-ca-bundle.pem',
timeout=15,
)Εδώ το routes είναι η υπάρχουσα αντιστοίχιση διαμεσολαβητή της εφαρμογής. Η διαδρομή πρέπει να ονομάζει τη σωστή αναγνώσιμη δέσμη εμπιστοσύνης για αυτόν τον πελάτη. Δεν είναι ένα ληφθέν πιστοποιητικό ιστοτόπου που επιλέχθηκε μόνο επειδή απέτυχε η σύνδεση.
Η μεταβλητή περιβάλλοντος REQUESTS_CA_BUNDLE είναι μια άλλη υποστηριζόμενη πηγή εμπιστοσύνης. Ελέγξτε την πραγματική διαδρομή αποστολής αν φαίνεται αναποτελεσματική· οι ροές εργασίας προετοιμασμένων αιτημάτων και οι ρητές ρυθμίσεις μπορούν να αλλάξουν τον τρόπο συγχώνευσης της διαμόρφωσης περιβάλλοντος.
Δεν θα πρέπει να χρειάζεστε το ιδιωτικό κλειδί της CA
Το δημόσιο πιστοποιητικό CA είναι αυτό που χρειάζεται ένας πελάτης για να αναγνωρίσει έναν εγκεκριμένο εκδότη. Το ιδιωτικό κλειδί υπογραφής του είναι ένα ισχυρό μυστικό άλλου μέρους. Δεν πρέπει να διανέμεται στους χρήστες της εφαρμογής ως μέρος μιας συνήθους επισκευής εμπιστοσύνης διαμεσολαβητή.
Ένα πιστοποιητικό πελάτη μπορεί ακόμα να απαιτείται από έναν συγκεκριμένο προορισμό ή από μια άλλη ξεχωριστά διαμορφωμένη σχέση TLS. Αυτή είναι ξεχωριστή απαίτηση, όχι κάτι που συνάγεται από κάθε σφάλμα επαλήθευσης πιστοποιητικού.
Όταν εμφανιστεί το επόμενο σφάλμα, ονομάστε τη λειτουργία: φόρτωση αρχείου CA, επαλήθευση πιστοποιητικού ομολόγου ή παρουσίαση ταυτότητας πελάτη. Η μετακίνηση ενός αρχείου μεταξύ verify και cert μέχρι να αλλάξει το μήνυμα δεν είναι αξιόπιστος τρόπος επιλογής του ρόλου του.