Mise en œuvre de l'authentification SSL bidirectionnelle https par Python requests

Program Community grain Officer 2022-01-15 04:10:33 阅读数:340

mise en uvre authentification ssl

J'ai besoin d'appeler unHTTPSInterface,Basé sur le serveurCACertificat、Clientclient key、 client CertifiésslConnexion d'authentification bidirectionnelle.

Lien vers le texte original
https://blog.csdn.net/weixin_51380973/article/details/113864819

- L'implémentation que l'on apprend en ligne est réalisée avecpython+urllib,

import urllib.request
import ssl
if __name__ == '__main__':
CA_FILE = "ca.crt"
KEY_FILE = "client.key"
CERT_FILE = "client.crt"
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
context.check_hostname = False
context.load_cert_chain(certfile=CERT_FILE, keyfile=KEY_FILE)
context.load_verify_locations(CA_FILE)
context.verify_mode = ssl.CERT_REQUIRED
try:
# Adoptionrequest() Méthode créer une requête :
request = urllib.request.Request('https://127.0.0.1:5000/')
res = urllib.request.urlopen(request, context=context)
print(res.code)
print(res.read().decode("utf-8"))
except Exception as ex:
print("Found Error in auth phase:%s" % str(ex))
  • Je veux utiliserpython+requestsRéalisation,Mais...requestsNon.contextParamètres,requestsLe site officiel est décrit ci - dessous,

Fig.1

Fig.2
Insérer la description de l'image ici

  • AvecrequestsDecert+verifyRéalisation des paramètres,Connexion réussie,Les codes sont les suivants::
import requests
import ssl
if __name__ == '__main__':
try:
# Adoptionrequest() Méthode créer une requête :
r=requests.get("https://127.0.0.1:5000/",cert=('client.crt','client.key'),verify='ca.crt')
print(r.status_code)
print(r.text)
print(r.headers)
except Exception as ex:
print("Found Error in auth phase:%s" % str(ex))

Liens de référence

https://blog.csdn.net/vip97yigang/article/details/84721027
https://2.python-requests.org/en/master/user/advanced/#ssl-cert-verification
https://blog.csdn.net/weixin_51380973/article/details/113864819

版权声明:本文为[Program Community grain Officer]所创,转载请带上原文链接,感谢。 https://pythonmana.com/2022/01/202201080613511801.html