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

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

DDD
Libérer: 2024-10-27 06:04:29
original
481 Les gens l'ont consulté

How can I disable SSL certificate verification in Python requests?

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

Lors des requêtes HTTPS, la bibliothèque de requêtes de Python vérifie le certificat SSL du serveur pour garantir que la connexion est sécurisée . Cependant, dans certains cas, par exemple lors de l'accès à des sites Web dont les certificats ont expiré, vous souhaiterez peut-être désactiver cette vérification.

Pour désactiver la vérification des certificats, utilisez l'argument verify dans la fonction request.post. Définissez-le sur False comme suit :

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

Cela permet d'effectuer la demande sans vérifier le certificat SSL. Cependant, il est important de noter que cela peut présenter un risque pour la sécurité, car cela ouvre la possibilité d’attaques de l’homme du milieu. Utilisez cette option avec prudence.

Utilisation d'un gestionnaire de contexte pour la vérification SSL

Si vous devez désactiver la vérification SSL pour plusieurs demandes dans un contexte spécifique, vous pouvez utiliser un gestionnaire de contexte comme suit :

<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):
        # ...

    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

with no_ssl_verification():
    # Make requests without SSL verification here</code>
Copier après la connexion

Ce gestionnaire de contexte définit temporairement verify sur False pour toutes les requêtes effectuées dans le bloc, puis revient au comportement par défaut à la sortie du bloc. Il supprime également l'avertissement SSL qui serait autrement déclenché.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal