Maison > développement back-end > Tutoriel Python > Comment désactiver la vérification du certificat dans les requêtes Python ?

Comment désactiver la vérification du certificat dans les requêtes Python ?

Mary-Kate Olsen
Libérer: 2024-10-26 15:38:03
original
844 Les gens l'ont consulté

How to Disable Certificate Verification in Python Requests?

Désactiver la vérification du certificat dans les requêtes Python

Lorsque vous rencontrez une erreur de certificat expiré lors de l'exécution de requêtes HTTPS avec des requêtes, une solution courante consiste à désactiver le vérification du certificat de sécurité.

Solution 1 : Utiliser verify=False

Comme mentionné dans la documentation, vous pouvez passer verify=False pour désactiver la vérification du certificat.

<code class="python">import requests
requests.post(url='https://foo.example', data={'bar':'baz'}, verify=False)</code>
Copier après la connexion

Solution 2 : Demandes de correctifs singe (Gestionnaire de contexte)

Pour une utilisation plus avancée, vous pouvez utiliser un gestionnaire de contexte pour singer les demandes de correctifs et désactiver la vérification des certificats pour toutes les demandes dans le contexte.

<code class="python">import warnings
import contextlib

import requests
from urllib3.exceptions import InsecureRequestWarning

old_merge_environment_settings = requests.Session.merge_environment_settings

@contextlib.contextmanager
def no_ssl_verification():
    opened_adapters = set()

    def merge_environment_settings(self, url, proxies, stream, verify, cert):
        opened_adapters.add(self.get_adapter(url))

        settings = old_merge_environment_settings(self, url, proxies, stream, verify, cert)
        settings['verify'] = False

        return settings

    requests.Session.merge_environment_settings = merge_environment_settings

    try:
        with warnings.catch_warnings():
            warnings.simplefilter('ignore', InsecureRequestWarning)
            yield
    finally:
        requests.Session.merge_environment_settings = old_merge_environment_settings

        for adapter in opened_adapters:
            try:
                adapter.close()
            except:
                pass</code>
Copier après la connexion

Utilisation :

<code class="python">with no_ssl_verification():
    requests.get('https://wrong.host.badssl.example/')</code>
Copier après la connexion

Notez que ce gestionnaire de contexte ferme tous les adaptateurs ouverts après l'avoir quitté pour éviter un comportement inattendu dû aux connexions mises en cache.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal