Fixer le niveau de sécurité SSL dans un script Python

Bonjour à tous,

C’est avec les sentiments les plus humbles que je poste cette demande (qui est d’ailleurs la première sur ce forum)
Je ne suis pas développeur et c’est en bidouillant que je suis arrivé à faire quelques scripts en Python pour mon installation Ha, donc je m’excuse par avant de mes méconnaissances tant en Python que dans certaine notion informatique.
J’ai réaliser pour mes besoins des sensors avec du code Python (exention: AlexxIT/PythonScriptsPro) pour interroger ma bbox (box de Bouygues) et depuis la mise à jour en 2022.7.x il semble que le niveau de sécurité SSL ait été relevé (corrigez-moi si je suite dans l’erreur) , e ce fait j’ai une erreur me disant de que niveau de sécurité « Caused by SSLError(SSLError(1, '[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:997) »
Est-ce que quelqu’un pourrait me dire ou ne serait-ce que m’orienter sur la manière de corriger ce problème, je pensais par exemple à un moyen de définir le niveau de sécurité dans mon script…

voici un de mes scripts, pour le répondeur par exemple:

    import json
    import requests

    URL = "mabbox.bytel.fr"
    password = "xxxxxx"

    data = {'password': password,'remember':'1'}
    headers={'Accept':'*/*','host':URL}

    try:
      result = requests.post('https://' + URL + '/api/v1/login' , headers=headers, data = data, timeout = 5, verify=False)
      cookie = 'BBOX_ID=' + result.cookies['BBOX_ID']

      headers={'Accept':'*/*','host':URL,"Cookie":cookie}

      result = requests.get('https://' + URL + '/api/v1/voip' , headers=headers, timeout = 5, verify=False)
      _json = result.json()
      res = _json[0]['voip'][0]['message_count']

      if res == 0 :
        self.state = 'Aucun message'
        self.attributes['nombre_de_messages'] = 0
        self.attributes['etat_repondeur_knx'] = 0
      if res > 0 :
        self.state = res + ' Message(s)' 
        self.attributes['nombre_de_messages'] = res
        self.attributes['etat_repondeur_knx'] = 1
      
    except:
      retour = 0   

je sais cela ne doit pas être écrit dans les règles de l’art, pardonnez-moi.
D’ailleurs si vous avez des remarques n’hésitez pas …

Par avance merci de temps que vous perdrez à me répondre

Mcp

Salut,

Jette un oeil sur les différentes solutions listées ici Python - requests.exceptions.SSLError - dh key too small
La #2 et la #4 sont sans doute les plus faciles à tester

Bonjour Pulpy

Merci, je vais regarde cela.

Bonjour Pulpy,

C’est bon j’ai pu modifier mes scripts suite à la lecture de la page que tu m’avais indiqué … un grand merci

PS: j’ai un peu l’impression de n’avoir pas assez cherché avant de poster :frowning: désolé)

Encore Merci

Pas de souci;)

Quelle soluce finalement 2 ou 4 ?
Tu as fais quelques essais/backup/restauration donc ça s’excuse :wink:

1 « J'aime »

j’ai pris la 4, j’ai juste ajouté:

import urllib3
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL:@SECLEVEL=1'
1 « J'aime »