import ssl
sc = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
sc.load_verify_locations(cafile='./server-ca.pem')
sc.load_cert_chain(certfile='./client-cert.pem', keyfile='./client-key.pem')
#sc.check_hostname = False
async with aiomysql.create_pool(
host=host,
port=port,
user=user,
password=password,
db=db,
ssl=sc
)
我犯了这样的错误。
ssl。SSLCertVerification错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败:IP地址不匹配,证书不是对"ip_address"有效。(_ssl.c:1108(
server-ca.pem、client-cert.pem和client-key.pem从GCP Cloud SQL的连接选项卡导出。
#mysql --ssl-ca=./server-ca.pem --ssl-cert=./client-cert.pem --ssl-key=./client-key.pem --host=host --user=user --password
这个mysql命令可以用来访问。
我想让你告诉我问题出在哪里。
刚刚遇到了同样的问题。您需要设置参数check_hostname=False
,这样SSL就不会尝试验证它
ssl = {
'cert': ...,
'key': ...,
'ca': ...,
'check_hostname': False,
}
我使用的是PyMySQL。在您的案例中,您可能会了解这一点如何适用于SSLContext。