调用k8s api遇到CERTIFICATE_VERIFY_FAILED的问题解决方法

前言

python3.5.6版本,django1.1.12版本

最近要调用k8s接口,k8s接口的使用方法请参考官网的说明:戳我

调用k8s接口时,遇到 CERTIFICATE_VERIFY_FAILED的问题,参试了网上千篇一律的文章说在 请求接口的那个py文件里面写上下面几行就能搞定,

import ssl
context = ssl._create_unverified_context()
或者选择它
ssl._create_default_https_context = ssl._create_unverified_context

参试以后,发现不行的,于是一步一步找到抛出异常的模块,发现是urllib3/connection.py里面抛出的异常。找到是哪个py文件报错就好说了,于是开始修改urllib3的源码

urllib3/connection.py

完整路径为:/usr/local/python356/lib/python3.5/site-packages/urllib3/connection.py

364        import ssl   # 添加这行
365        context = ssl._create_unverified_context()  # 添加这行
366        self.sock = ssl_wrap_socket(
367            sock=conn,
368            keyfile=self.key_file,
369            certfile=self.cert_file,
370            key_password=self.key_password,
371            ca_certs=self.ca_certs,
372            ca_cert_dir=self.ca_cert_dir,
373            server_hostname=server_hostname,
374            ssl_context=context)  # 这个ssl_content就会使用刚才我们设置
posted @ 2019-06-21 21:08  温柔易淡  阅读(1566)  评论(0编辑  收藏  举报