O Alibaba Cloud SDK V1.0 para Python usa HTTP por padrão e valida certificados TLS quando o HTTPS está ativado. Saiba como alternar para HTTPS, desativar a validação de certificado para testes e fornecer um certificado de CA personalizado para ambientes de rede corporativa.
Entenda os padrões do SDK V1.0
O SDK V1.0 difere dos SDKs V2.0 em dois aspectos principais:
Protocolo padrão HTTP: O SDK V1.0 não usa HTTPS por padrão. Ao contrário dos SDKs V2.0, defina explicitamente o HTTPS em cada requisição para criptografar os dados em trânsito.
Validação de certificado ativada por padrão: Ao usar HTTPS, o SDK valida automaticamente o certificado TLS do servidor.
Defina o protocolo da requisição
Chame set_protocol_type('https') em cada objeto de requisição para ativar o HTTPS. Como o HTTPS não é o padrão do SDK, omitir essa chamada envia a requisição 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)
Desative a validação de certificado TLS
Desative a validação de certificado apenas em ambientes de teste confiáveis. Com verify=False, o SDK aceita qualquer certificado apresentado pelo servidor e ignora incompatibilidades de nome de host ou certificados expirados. Isso expõe sua aplicação a ataques man-in-the-middle. Nunca use essa configuração em produção.
Defina verify=False ao inicializar o AcsClient para desativar a validação de certificado em todas as requisições desse cliente.
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.
)
Use um certificado de CA personalizado
Em redes corporativas em que um proxy encerra a conexão TLS com o próprio certificado, passe o caminho do arquivo de certificado de CA para o parâmetro verify. O arquivo deve estar no formato .pem. Essa configuração se aplica a todas as requisições do cliente.
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.
)