相关疑难解决方法(0)

SSL认证错误>主机名不匹配

我正在尝试使用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'})
Run Code Online (Sandbox Code Playgroud)

不幸的是,我一直收到以下错误:

ssl.CertificateError: hostname 'SQL_IP_ADDRESS' doesn't match '$ALIAS_FROM_SELF_SIGNED_SSL_CERT'
Run Code Online (Sandbox Code Playgroud)

我已经查找了问题,但是找不到不涉及通过猴子补丁ssl代码跳过ssl验证的修复程序。我明确列出了SQL主机的IP地址,但是ssl验证在ssl.match_hostname期间暂停,因为ssl证书是使用其他主机名自签名的。

我确定我的密钥是有效的,因为我可以使用Ruby(Windows / Linux)和linux mysql CLI与它们连接。ssl.match_hostname似乎是一个问题。它类似于这个问题,并且这一个,但都回避这个问题。

有没有一种方法可以正确处理Python中的自签名SSL证书。

python mysql ssl google-cloud-sql pymysql

6
推荐指数
1
解决办法
2151
查看次数

使用urllib3忽略证书验证

我正在使用urllib3来对付具有自签名证书的私有服务.有没有办法让urllib3忽略证书错误并提出请求呢?

import urllib3
c = urllib3.HTTPSConnectionPool('10.0.3.168', port=9001)
c.request('GET', '/')
Run Code Online (Sandbox Code Playgroud)

使用以下内容时:

import urllib3
c = urllib3.HTTPSConnectionPool('10.0.3.168', port=9001, cert_reqs='CERT_NONE')
c.request('GET', '/')
Run Code Online (Sandbox Code Playgroud)

引发以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/urllib3/request.py", line 67, in request
    **urlopen_kw)
  File "/usr/lib/python3/dist-packages/urllib3/request.py", line 80, in request_encode_url
    return self.urlopen(method, url, **urlopen_kw)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 415, in urlopen
    body=body, headers=headers)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 267, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.3/http/client.py", line 1061, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python3.3/http/client.py", line 1099, in …
Run Code Online (Sandbox Code Playgroud)

python urllib3 python-3.x

5
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×2

google-cloud-sql ×1

mysql ×1

pymysql ×1

python-3.x ×1

ssl ×1

urllib3 ×1