2016-03-03 10 views
8

mam ten mały DockerfileAlpine 3.3, Python 2.7.11, urllib2 powodując SSL: CERTIFICATE_VERIFY_FAILED

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

Budowanie go docker build -t alpine-py/01 . a następnie uruchomić go z docker run -it --rm alpine-py/01 tworzy następujący wynik

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)> 

Wczoraj Zostałem ukąszony przez ostatnie wydanie OpenSSL 1.0.2g, które spowodowało, że py-cryptograpy nie skompilował. Na szczęście chłopaki z py-cryptography wydali kilka wersji później na PyPI. Problem polegał na tym, że funkcja w OpenSSL otrzymała nowy podpis.

Czy to może być powiązane lub czy czegoś brakuje?

Odpowiedz

10

Musisz zainstalować CA-certyfikaty, aby móc zweryfikować podpisanych certyfikatów przez urzędy publiczne:

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

Dzięki, to mnie uratowało. –

0

Musisz uaktualnić Alpine jak potrzebuje libssl być przeniesieni z łatą

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

apk -u upgrade zaktualizuje te:

  • libcrypto1.0 (1.0.2e-R0 -> 1.0.2g-R0)
  • libssl1.0 (1.0.2e-r0 -> 1.0.2g-r0)
+0

tak, dzięki, zaakceptowana odpowiedź już była rozwiązaniem, mówiąc mi, żebym dodał "certyfikaty ca". Och, rozumiem, w moim przypadku uaktualnienie nie było konieczne, ale dzięki za podpowiedź może się przydać kiedyś. –

+0

Ale czy te aktualizacje nie zostaną zastosowane? Wydaje mi się, że podczas instalacji 'python-dev' mogłem zobaczyć, że aktualizował on również wszystkie używane biblioteki. –

+0

dla apk, aktualizacja spowoduje "uaktualnienie aktualnie zainstalowanych pakietów". W późniejszych wersjach alpejskich jest wymagana łatka dla libssl i libcrypto. Podczas dodawania, tzn. Apk dodaje Python-Dev, pobiera pobrane przez opiekunów zależności dla tego pakietu - które mogą nie być takie same. –

Powiązane problemy