LocalStack内AWS Lambda Python代码连接MockServer遇SSL证书验证错误
本地测试AWS Lambda调用MockServer的SSL证书验证问题
我在LocalStack环境下运行AWS Lambda的Python代码进行测试,搭建了一个返回HTTPS响应的MockServer,但遇到以下SSL证书验证错误:
SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain
限制条件:无法修改Python代码,仅能配置cert_data_file_name、pk_file_name和authorization_header这三个参数。
Lambda函数中创建连接池的代码如下:
return HTTPSConnectionPool( host=host_addr, cert_reqs="CERT_REQUIRED", cert_file=cert_data_file_name, key_file=pk_file_name, headers={"Authorization": authorization_header}, timeout=Timeout(connect=int(connect_timeout), read=int(read_timeout)))
MockServer的docker-compose.yaml配置:
version: "3.8" services: mockServer: image: mockserver/mockserver:5.15.0 ports: - 443:443 environment: MOCKSERVER_SERVER_PORT: 443 MOCKSERVER_TLS: true
我已经尝试过以下方法,但问题仍未解决:
- 将
cert_data_file_name和pk_file_name的内容替换为MockServer官方提供的CertificateAuthorityCertificate.pem和PKCS8CertificateAuthorityPrivateKey.pem - 设置以下环境变量尝试跳过CA验证:
CURL_CA_BUNDLE="" REQUESTS_CA_BUNDLE="" PYTHONHTTPSVERIFY=0
注:如果将代码中的cert_reqs改为"CERT_NONE",代码可以正常运行,但我无法修改这段代码。
内容的提问来源于stack exchange,提问作者Vinicius Folha
相关产品推荐
相关产品推荐

