Par défaut, le SDK Alibaba Cloud V1.0 pour Python utilise HTTP et valide les certificats TLS lorsque HTTPS est activé. Découvrez comment basculer vers HTTPS, désactiver la validation des certificats à des fins de test et fournir un certificat CA personnalisé pour les environnements réseau d'entreprise.
Comprendre les valeurs par défaut du SDK V1.0
Le comportement du SDK V1.0 diffère de celui des SDK V2.0 sur deux points essentiels :
Protocole HTTP par défaut : Le SDK V1.0 n'utilise pas HTTPS par défaut. Contrairement aux SDK V2.0, vous devez explicitement définir HTTPS sur chaque requête afin de chiffrer les données en transit.
Validation des certificats activée par défaut : Lorsque vous utilisez HTTPS, le SDK valide automatiquement le certificat TLS du serveur.
Définir le protocole de requête
Appelez set_protocol_type('https') sur chaque objet de requête pour activer HTTPS. HTTPS n'étant pas le protocole par défaut du SDK, l'omission de cet appel entraîne l'envoi de la requête via HTTP.
from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
from aliyunsdkcore.client import AcsClient
# Initialize the client.
# For credential setup, see the V1.0 SDK documentation.
client = AcsClient(
region_id='<region_id>', # The region ID.
)
request = DescribeInstancesRequest()
request.set_protocol_type('https') # Send this request over HTTPS.
client.do_action_with_exception(request)
Désactiver la validation des certificats TLS
Ne désactivez la validation des certificats que dans des environnements de test de confiance. Avec verify=False, le SDK accepte tout certificat présenté par le serveur, ignorant ainsi les incompatibilités de nom d'hôte et les certificats expirés. Cette configuration expose votre application aux attaques de type « homme du milieu ». Ne l'utilisez jamais en production.
Définissez verify=False lors de l'initialisation d'AcsClient pour désactiver la validation des certificats pour toutes les requêtes émises par ce client.
from aliyunsdkcore.client import AcsClient
# Initialize the client.
# For credential setup, see the V1.0 SDK documentation.
client = AcsClient(
region_id='<region_id>', # The region ID.
verify=False # Disables certificate validation for all requests from this client.
)
Utiliser un certificat CA personnalisé
Dans les réseaux d'entreprise où un proxy termine la connexion TLS avec son propre certificat, transmettez le chemin d'accès à votre fichier de certificat CA au paramètre verify. Ce fichier doit être au format .pem. Cette configuration s'applique à toutes les requêtes effectuées par le client.
from aliyunsdkcore.client import AcsClient
# Initialize the client.
# For credential setup, see the V1.0 SDK documentation.
client = AcsClient(
region_id='<region_id>', # The region ID.
verify='./cacert.pem' # Path to your CA certificate file in PEM format.
)