Alpine 3.3、Python 2.7.11、urllib2 导致 SSL:CERTIFICATE_VERIFY_FAILED

2023-11-25

我有这个小 Dockerfile

FROM alpine:3.3
RUN apk --update add python
CMD ["python", "-c", "import urllib2; response = urllib2.urlopen('https://www.python.org')"]

构建它docker build -t alpine-py/01 .然后运行它docker run -it --rm alpine-py/01创建以下输出

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 431, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 449, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
    context=self._context)
  File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

昨天我被最近发布的 OpenSSL 1.0.2g 所困扰,这导致py-cryptograpy不编译。幸运的是,这些家伙来自py-cryptography几个小时后在 PyPI 上发布了新版本。问题是 OpenSSL 中的一个函数获得了新签名。

这可能是相关的还是我错过了什么?


您需要安装 ca-certificates 才能验证公共 CA 签名的证书:

FROM alpine:3.3
RUN apk --no-cache add python ca-certificates
CMD ["python", "-c", "import urllib2; response = urllib2.urlopen('https://www.python.org')"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Alpine 3.3、Python 2.7.11、urllib2 导致 SSL:CERTIFICATE_VERIFY_FAILED 的相关文章

随机推荐