python – SSL认证错误>主机名不匹配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – SSL认证错误>主机名不匹配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1371字,纯文字阅读大概需要2分钟。
内容图文
![python – SSL认证错误>主机名不匹配](/upload/InfoBanner/zyjiaocheng/781/a62bf821508a46c2a5a3deb87ba174da.jpg)
我正在尝试使用SSL证书和python模块PyMySQL连接到Google Cloud MYSQL服务器,其中包含以下行:
connection = pymysql.connect(host=os.environ['SQL_HOST_IP'], user=os.environ['SQL_USER'], password = os.environ['SQL_PASSWORD'],
db='main', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor,
ssl={'key': 'client-key.pem', 'cert': 'client-cert.pem', 'ca': 'server-ca.pem'})
不幸的是,我一直收到以下错误:
ssl.CertificateError: hostname 'SQL_IP_ADDRESS' doesn't match '$ALIAS_FROM_SELF_SIGNED_SSL_CERT'
我查找了这个问题,但是找不到一个不涉及monkeypatching ssl代码跳过ssl验证的修复.我明确列出了SQL主机的IP地址,但ssl验证在ssl.match_hostname期间暂停,因为ssl证书是使用不同的主机名自签名的.
我确定我的密钥是有效的,因为我可以使用Ruby(Windows / Linux)和linux mysql CLI连接它们.这似乎是ssl.match_hostname的问题.它类似于this question和this one,但两者都回避了这个问题.
有没有办法在Python中正确处理自签名SSL证书.
解决方法:
虽然您的答案问题的解决方案在此处作为合并请求被拒绝:https://github.com/PyMySQL/PyMySQL/pull/555
您可以选择禁用check_hostname.这适用于版本’0.7.11′
ssl_options = {
'key': 'client-key.pem',
'cert': 'client-cert.pem',
'ca': 'server-ca.pem',
'check_hostname': False
}
connection = pymysql.connect(
host=os.environ['SQL_HOST_IP'],
user=os.environ['SQL_USER'],
password = os.environ['SQL_PASSWORD'],
db='main',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor,
ssl=ssl_options
)
内容总结
以上是互联网集市为您收集整理的python – SSL认证错误>主机名不匹配全部内容,希望文章能够帮你解决python – SSL认证错误>主机名不匹配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。