运行python的Windows Docker容器中的证书validation错误

我刚开始使用python来利用第三方api来改善我们公司的工作stream程。 我一直在使用的一个API是citrix共享文件(一个安全的,pipe理的FTP服务器)。 我使用citrix编写的模块作为api调用的示例,因此在我正在编写的内容和实际的HTTP请求之间至less有一个抽象层。

当我做authentication请求从我的笔记本电脑获得一个访问令牌这工作得很好,但是当我尝试从一个docker容器(安装了Python的Windows nano)做同样的事情时,我得到了回来作为回应:

Traceback (most recent call last): File "main.py", line 38, in <module> sharefile = pysharefile.authenticate(hostname,sf_client_id,sf_client_secret,sf_username,sf_password) File "C:\Python\lib\site-packages\pysharefile\pysharefile.py", line 42, in authenticate http.request('POST', uri_path, urllib.parse.urlencode(params), headers=headers) File "C:\Python\lib\http\client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "C:\Python\lib\http\client.py", line 1285, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "C:\Python\lib\http\client.py", line 1234, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "C:\Python\lib\http\client.py", line 1026, in _send_output self.send(msg) File "C:\Python\lib\http\client.py", line 964, in send self.connect() File "C:\Python\lib\http\client.py", line 1400, in connect server_hostname=server_hostname) File "C:\Python\lib\ssl.py", line 401, in wrap_socket _context=self, _session=session) File "C:\Python\lib\ssl.py", line 808, in __init__ self.do_handshake() File "C:\Python\lib\ssl.py", line 1061, in do_handshake self._sslobj.do_handshake() File "C:\Python\lib\ssl.py", line 683, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) 

从我读过的可能是因为容器无法访问我的计算机上的证书,但如果是这样,我将如何在容器中安装SSL证书?

谢谢,奥斯汀

如果主机上的证书存储与guest虚拟机兼容,则可以直接挂载。

docker run -v / host / path / to / certs:/ container / path / to / certs -d IMAGE_ID“update-ca-certificates”

Interesting Posts