Compose: SSL゚ラヌ[SSLCERTIFICATE_VERIFY_FAILED]蚌明曞の怜蚌に倱敗したした

䜜成日 2015幎01月27日  Â·  182コメント  Â·  ゜ヌス: docker/compose

docker-composeでほが同時に䞡方のマシンでこの゚ラヌが発生し、最近ではロヌルバック埌にfigで゚ラヌが発生したした。 いく぀かの怜玢結果はpython / opensslの問題を瀺しおいたすが、私は単玔にどこを掘り䞋げるのか理解できたせん。 Python / opensslは自䜜から来おいたす。

Boot2Docker-cliバヌゞョンv1.4.1
Gitコミット43241cb

クラむアントバヌゞョン1.4.1
クラむアントAPIバヌゞョン1.16
Goバヌゞョンクラむアントgo1.4
Gitコミットクラむアント5bc2ff8
OS / Archクラむアントdarwin / amd64
サヌバヌバヌゞョン1.4.1
サヌバヌAPIバヌゞョン1.16
Goバヌゞョンサヌバヌgo1.3.3
Gitコミットサヌバヌ5bc2ff8

arepackaging

最も参考になるコメント

私はおそらくこれを提起した最初の人ではありたせんが、curl環境倉数が無関係のPythonアプリケヌションに圱響を䞎えるこずは盎感に反したせんか

ありがずう、
ゞェむ゜ンミルズ

  • 携垯から送られたした。

2016幎5月7日には、15:22で、ロレンツォ・シチリアの[email protected]は曞きたした

CURL_CA_BUNDLEを無効にするのではなく、次を䜿甚しお実行できたす。
CURL_CA_BUNDLE =〜/ .docker / machine / machine / default / ca.pem docker-compose ps

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

党おのコメント182件

docker-composeリリヌス候補を䜿おうずしおも同じこずが起こっおいるず思いたす...

$ docker-compose ps
SSL error: hostname '192.168.59.103' doesn't match 'boot2docker'

しかし、 figは正垞に機胜したす...

$ fig -f docker-compose.yml ps
Name   Command   State   Ports
------------------------------

私はOSXを䜿甚しおおり、Goクラむアントのバヌゞョンがgo1.3.3であるこずを陀いお、 @ gkostyanikovず同じバヌゞョンをすべお実行しおいたす。 私のpython / opensslもHomebrew経由でむンストヌルされたす。 それず関係があるのでしょうか

線集実際には、Homebrewはopensslをリンクしおいないように芋えるので、デフォルトのOSXバヌゞョンであるOpenSSL 0.9.8za 5 Jun 2014を䜿甚しおいたす。

問題はHomebrewpythonでした。

docker-composeは、homebrew python / opensslをアンむンストヌルし、 easy_install docker-composerを䜿甚しおpipをむンストヌルし、システムpythonを䜿甚しおdocker-composerを再むンストヌルした埌に機胜するようになりたした。

@adambiggsあなたの゜リュヌションは機胜したす ありがずう

これは私にずっおもうたくいきたした。私は真新しいMacを䜿甚しおいお、自䜜のpythonでセットアップしおいたす。 figがdockerず通信するずきにこの゚ラヌが発生したした。 @adambiggsのアドバむスに埓い、私のブロッカヌを

これは私にも起こっおいたす。 そしお、私はシステムのpythonを䜿いたくないのですが、誰か別の回避策がありたすか

バむナリを䜿っおみたしたか 同じ問題が発生したすか

いいえ、バむナリは詊しおいたせん。
システムのPythonにむンストヌルしたくない堎合、別の回避策はvirtualenvwrapperを䜿甚するこずです。

mkvirtualenv --python=/usr/bin/python docker-compose
pip install docker-compose==1.1.0-rc2

pyenvを䜿甚しおPython 2.7.8にロヌルバックするより良い解決策を芋぀けたした

http://stackoverflow.com/a/28216459/1166293
https://github.com/yyuu/pyenv

線集気にしないでください、 pyenvはそれ自身の問題の束を導入したした...

私にずっおこの゚ラヌの原因は、自䜜のopensslが/ usr / local / bin / opensslにリンクされおいなかったこずです。

openssl version

OpenSSL1.0.1jではなく2014幎10月15日

ランニング

brew link --force openssl

figを再むンストヌルするず問題が解決したした。

興味深いですが、私のOpenSSLバヌゞョンはOpenSSL 1.0.1j 2014幎10月15日です。

@aanand私の堎合、バむナリにはこの問題はありたせん。

自䜜ではなくpipを介しおfigをむンストヌルしたずきに、この゚ラヌが発生したした。 sudo pip uninstall figずbrew install fig修正しおくれたした。

@NotBobTheBuilder゜リュヌションの+1、これも私のために働いた

+1 @NotBobTheBuilderの堎合

@NotBobTheBuilderはむチゞクのための玠晎らしい゜リュヌションですが、

@ocasta OpenSSLのリンクに関する自䜜からのこの恐ろしい譊告はどうですか

この匏は暜のみです。
Mac OS Xはすでにこの゜フトりェアを提䟛しおおり、
䞊列はあらゆる皮類の問題を匕き起こす可胜性がありたす。

Appleは、独自のTLSおよび暗号ラむブラリを優先しおOpenSSLの䜿甚を非掚奚にしたした

@NotBobTheBuilderを高く評䟡したす-それで私も修正されたした。

誰かがこの問題の原因を知っおいたすか それはむチゞクで私に起こっおいたす。 私は今のようにpip install figに固執するこずを奜みたす。 数週間前はすべお正垞に機胜しおいたしたが、システムで䜕が倉曎されたのかわかりたせん

私のシステムOpenSSLはOpenSSL 0.9.8zc 15 Oct 2014で、自䜜のopensslは新しいですが、リンクされおいたせん。

... Python 2.7.9にアップグレヌドしたずきに壊れたず思いたすが、SSL関連のバグがいく぀かあるようです...次のようになりたす。
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196431
http://bugs.python.org/issue23052

brew link --force opensslを実行しおfigを再むンストヌルしおも、䜕も起こりたせんでした。

Py 2.7.9でのSSLの倉曎を回避するには、figを曎新する必芁がありたすか
https://www.python.org/dev/peps/pep-0476/#opting -out

私はboot2dockerを䜿甚しおいたす。 1.5.0にアップグレヌドしたしたが、倉曎はありたせん。

In [1]: from fig.cli.docker_client import docker_client

In [2]: client = docker_client()

In [3]: client.version()

SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

In [4]: %debug
> /Users/anentropic/.virtualenvs/dpm/lib/python2.7/site-packages/requests/sessions.py(461)request()
    460         send_kwargs.update(settings)
--> 461         resp = self.send(prep, **send_kwargs)
    462

ipdb> p settings
{'verify': '/Users/anentropic/.boot2docker/certs/boot2docker-vm/ca.pem', 'cert': ('/Users/anentropic/.boot2docker/certs/boot2docker-vm/cert.pem', '/Users/anentropic/.boot2docker/certs/boot2docker-vm/key.pem'), 'proxies': {}, 'stream': False}

figコヌドは正しいように芋えたすが、boot2dockerによっおむンストヌルされた蚌明曞を䜿甚しようずしおいたす...これらの蚌明曞は垞に機胜しおいたので問題ないず思いたす。b2dをアップグレヌドしただけなので、期限切れになるこずはありたせん。

うヌん、私のPythonhomebrew経由でむンストヌルはHomebrewバヌゞョンのOpenSSLを䜿甚しおいるようですが

$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2 22 Jan 2015
$ brew info openssl
openssl: stable 1.0.2 (bottled)
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

... /usr/local/opt/openssl/bin/c_rehashしおも圹に立ちたせんでした:)

以前にむンストヌルしたバヌゞョンのPython2.7.8_2を$ brew switch python 2.7.8_2経由で詊したしたが、同じ問題が発生したした゚ラヌメッセヌゞが少し異なっおいおも。 したがっお、Python2.7.9バヌゞョンは問題ではないようです。

次に、1.0.2から1.0.1j_1たでの叀いopensslバヌゞョンに切り替えおみたした。これは機胜しおいるようです。

$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2 22 Jan 2015
$ docker-compose ps
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
$ brew switch openssl 1.0.1j_1
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.1j 15 Oct 2014
$ docker-compose ps
Name   Command   State   Ports 
------------------------------

私にずっおは別の゚ラヌが発生したすが、問題を絞り蟌むのに圹立぀可胜性がありたす。

$ brew switch openssl 1.0.1j_1
Error: openssl does not have a version "1.0.1j_1" in the Cellar.
Versions available: 1.0.1e, 1.0.1f, 1.0.1g, 1.0.2
$ brew switch openssl 1.0.1g
Opt link created for /usr/local/Cellar/openssl/1.0.1g
$ fig up
SSL error: hostname '192.168.59.103' doesn't match 'boot2docker'

OpenSSL 1.0.2に戻すず、以前のCERTIFICATE_VERIFY_FAILED゚ラヌが発生するため、バヌゞョンを倉曎するず確実に䜕らかの圱響がありたす

回避策の1぀は、コンテナヌでdocker-composeを実行するこずです。

git clone [email protected]:docker/fig.git
cd fig
docker build --tag docker-compose .

alias docker-compose='docker run --rm -e "DOCKER_TLS_VERIFY=$DOCKER_TLS_VERIFY" -e DOCKER_HOST=tcp://172.17.42.1:2376 -e DOCKER_CERT_PATH=/usr/local/certs -v "$DOCKER_CERT_PATH:/usr/local/certs" -v "$PWD:/code" docker-compose --project-name "${PWD##*/}"'

これには、VirtualBoxのポヌト2376を公開する必芁がありたす。

VBoxManage controlvm boot2docker-vm natpf1 "docker-s,tcp,127.0.0.1,2376,,2376"

@kretzの答えは私のために働いた。

+1 @kretzbrewスむッチopenssl1.0.1j_1
トリックを䜜った

brew switch openssl 1.0.1jは私のために働きたす_1の欠劂に泚意しおください

私はそれが奜きではありたせんが、virtualenvからfigをアンむンストヌルし、homebrew経由でむンストヌルするず修正されたした

ありがずう@ kretz-あなたの答えは私のためにそれを解決したした

それは私にずっおはうたくいきたせん

$ brew switch openssl 1.0.1j_1
Error: openssl does not have a version "1.0.1j_1" in the Cellar.
Versions available: 1.0.2

私の回避策は、brewから取埗した2.7.9ではなく、python2.7.8でvirtualenvを䜜成するこずでした。

さたざたな回避策...誰かが本圓の問題に぀いおの掞察を持っおいたすか

App Engineは䜕かず䜕の関係がありたすか

18時09分に2015幎3月11日、ラむアン・小の[email protected]は曞きたした

私はアプリ゚ンゞンのもののどれもPython2.7.9で動䜜しないず確信しおいたす

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-78329652 。

@anentropic䜿甚切り替えする前に、叀いopensslバヌゞョンをむンストヌルする必芁がありたす。

# Find available older versions to install
$ brew search openssl
openssl
homebrew/versions/openssl098  homebrew/versions/openssl101

# Install older 1.0.1 version
$ brew install homebrew/versions/openssl101

# See what versions are installed locally
$ brew info openssl
...
/usr/local/Cellar/openssl/1.0.1f (429 files,  15M)
  Built from source
/usr/local/Cellar/openssl/1.0.1i (430 files,  15M)
  Poured from bottle
/usr/local/Cellar/openssl/1.0.1j (431 files,  15M)
  Poured from bottle
/usr/local/Cellar/openssl/1.0.1j_1 (431 files,  15M)
  Poured from bottle
/usr/local/Cellar/openssl/1.0.2 (459 files,  18M)
  Poured from bottle
...

# Switch to one of the 1.0.1 you got installed
$ brew switch openssl 1.0.1j_1

brew install openssl101が、 1.0.1jに切り替える可胜性がありたせん1.0.1lが衚瀺され、システムが混乱するのではないかず心配しおいたした。それらは別々の醞造パッケヌゞであり、私はすでに1.0.2を䞊行しお持っおいたした

圹に立たなかったようですが、倚分私はそれで十分に行きたせんでした

申し蚳ありたせんが、間違ったgithubの問題に返信したしたコメントをすばやく削陀したした
11:30 anentropicの氎、2015幎3月11日には[email protected]
曞きたした

私はopenssl101をbrewinstallしたしたが、それは私に可胜性を䞎えたせんでした
1.0.1jに切り替えたす...それは私に1.0.1lを䞎えたした、そしお私はそれが行くのではないかず心配したした
それらは別々の醞造パッケヌゞであり、私はすでに持っおいたので、私のシステムを混乱させたす
1.0.2䞊列

圹に立たなかったようですが、倚分私はそれで十分に行きたせんでした

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-78340580 。

そのため、Mac OSXで実行しおいる堎合も、この問題が発生しおいるようです。 docker-composeを䜿甚しおこれが私の.ymlファむルです。

web:
    build: .
    links:
        - db
        - cache
        - worker
    ports:
        - "8080:8080"
db:
    image: mysql
cache:
    image: redis
worker:
    build: .
    command: celery -A application.extentions worker -l info

docker-compose pullを実行するず、次の出力が倱敗したした。

$ docker-compose pull
Pulling db (mysql:latest)...
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

私がチェックしたいく぀かのこず。
which openssl; openssl version

/usr/local/bin/openssl
OpenSSL 1.0.2 22 Jan 2015

@psykzz brewでむンストヌルするず、

brew install docker-compose

@arvindtest䜕がこの問題に関連しおいるず思いたすか

参考たでに、これに倚くの苊劎をした埌、これはboot2dockerの問題のようです。
私のために働いたのはTLSを無効にするこずでした。 これを行うためのナヌザヌフレンドリヌな方法はただありたせんが、手順の抂芁は次のずおりです。
https://github.com/deis/deis/issues/2230

基本的に、次のこずを行う必芁がありたす。

boot2docker ssh
sudo echo'DOCKER_TLS = no '> / var / lib / boot2docker / profile

次に、boot2dockerを再起動したす。
boot2docker停止
boot2docker開始

〜/ .bashrcにこのようなものを远加したすIPが正しいこずを確認しおください

export DOCKER_HOST = tcp//192.168.59.103 2375
未蚭定のDOCKER_CERT_PATH
未蚭定のDOCKER_TLS_VERIFY

あなたのbashrcで$boot2docker shellinitを持っおいないのはなぜですか

すべおを正しく支揎する必芁がありたすか

぀たり、ただTLS゜リュヌションを実行する必芁がありたす。
2015幎3月21日23:05、「coderfi」 [email protected]は次のように曞いおいたす。

参考たでに、これず倚くの苊劎をした埌、これは
boot2dockerの問題。
私のために働いたのはTLSを無効にするこずでした。 ただナヌザヌフレンドリヌな方法はありたせん
これを行うには、手順の抂芁は次のずおりです。
deis / deis2230 https://github.com/deis/deis/issues/2230

基本的に、次のこずを行う必芁がありたす。

boot2docker ssh
sudo echo'DOCKER_TLS = no '> / var / lib / boot2docker / profile

次に、boot2dockerを再起動したす。
boot2docker停止
boot2docker開始

そしおあなたの〜/ .bashrcにこのようなもの
IPが正しいこずを確認しおください

export DOCKER_HOST = tcp//192.168.59.103 2375
未蚭定のDOCKER_CERT_PATH
未蚭定のDOCKER_TLS_VERIFY

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-84468058 。

@kretzそれは動䜜したす ありがずう。

@psykzz $(boot2docker shellinit)ですか

はい、コメントを曎新したした。 derp。

TLSを無効にする@coderfiの゜リュヌションが機胜するこずを確認できたす

それがあなたのために働くこずをうれしく思いたす。 :)

@Mattはい、シェルのinitシェル拡匵のヒントに぀いおは正しいです。
ただし、boot2dockerがただ起動しおいない堎合は機胜しない可胜性があるため、
䟋を明瀺的にしたした。

Fi
2015幎3月26日午前10時18分、「anentropic」 [email protected]は次のように曞いおいたす。

@coderfihttps //github.com/coderfiの゜リュヌションを確認でき
TLSを無効にするこずは私のために働きたす

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-86630313 。

これは明らかかもしれたせんが、TLSを無効にしたり、これを機胜させるためだけにOpenSSLをダりングレヌドしたりする堎合は、実行内容に応じお慎重に怜蚎する必芁がありたす。

これはすべおに関係するわけではありたせんが、 gliderlabs/alpine:3.1からプルするDockerfileを䜿甚したpipむンストヌル䞭に、同様の゚ラヌがポップアップしたした。これは、progriumずcrewの最小限のLinuxコンテナヌです。 問題は、システム蚌明曞パッケヌゞをむンストヌルしおいなかったこずでした。この問題は、 pipをむンストヌルする前にパッケヌゞをむンストヌルし、芁件ファむルを実行するこずで解決されたした。

RUN apk-install -X ca-certificates

提案された解決策は私にずっお実際にはうたくいきたせんでした。 1.0.1OpenSSLバヌゞョンのいずれにも切り替えるこずができたせんでした。 結局、pipでむンストヌルされたすべおのdocker-composeバヌゞョンをアンむンストヌルし、 brew install docker-compose実行するだけでうたくいくこずがわかりたした。

䞊蚘の解決策は機胜したしたが、私には面倒でした。 簡単なboot2docker upgradeで、私の偎のすべおが修正されたした。

私はすでに最新のboot2dockerバヌゞョンを持っおいたすが、䞊蚘の修正がないず機胜したせん

自䜜の開発者は、docker-pyずdocker-composeをrequests 2.6.0の䜿甚にアップグレヌドする必芁があるこずを瀺唆しおいたす

https://github.com/Homebrew/homebrew/issues/38226#issuecomment -88083428

うたくいけば、これは誰かを助けるでしょう...解決策はわかりたせんが、Mac OSXプロキシずしおCharlesを䜿甚しおいる堎合はこのメッセヌゞが衚瀺されたす。

FWIW、pipを介しおdocker-composeをむンストヌルするず、docker-compose自䜓が機胜するようになりたしたOS X Mavericksにcurlを介しおむンストヌルするず、 illegal operation゚ラヌが発生したした。 その埌、SSL゚ラヌも発生しおいたした。 brew link --force openssl && brew switch openssl 1.0.1j実行するず、修正されたようです。

@rseymourの答えは私のために働いた

brewでopenssl-1.0.1jが芋぀からない堎合は、githubリポゞトリから叀いバヌゞョンのopensslレシピを取埗しお利甚できたす。

» brew switch openssl 1.0.1j
Error: openssl does not have a version "1.0.1j" in the Cellar.
Versions available: 1.0.2a-1
» brew unlink openssl
Unlinking /usr/local/Cellar/openssl/1.0.2a-1... 1543 symlinks removed
» brew install https://raw.githubusercontent.com/Homebrew/homebrew/62fc2a1a65e83ba9dbb30b2e0a2b7355831c714b/Library/Formula/openssl.rb
...
🍺  /usr/local/Cellar/openssl/1.0.1j_1: 431 files, 14M, built in 4.2 minutes
» docker-compose up                                                                                                                   
Creating myservice...

1.0.1mを詊したしたが、うたくいきたせんでした。
だから私は@lazyvalの方法を詊し
これは私がやったこずです。

brew install https://raw.githubusercontent.com/Homebrew/homebrew/62fc2a1a65e83ba9dbb30b2e0a2b7355831c714b/Library/Formula/openssl.rb
醞造スむッチopenssl1.0.1j_1
brew unlink openssl101 //この前に1.0.1mをリンクしたので
brew link openssl --force
docker-compose ps

ありがずうございたした

Python 2.7.9以降でバむナリをビルドする必芁があるため、珟圚これを調査しおいたす。

_1427から移転_

サヌバ

  • CoreOS Stable
  • Docker 1.5.0

クラむアント

  • CentOS 6.6、64ビット
  • カヌネル2.6.32-042stab105.14
  • Dockerクラむアント1.5.0
  • docker-compose 1.2.0
  • ~/.docker/{ca.pem,cert.pem,key.pem}配眮されたSSL蚌明曞
  • DOCKER_HOST=tcp://docker-builder:2376
  • DOCKER_TLS_VERIFY=1

次のMakefileを䜿甚しおSSL蚌明曞を䜜成したす。

#!/bin/bash

SERVER=docker-builder

clean:
    rm ca.* server.* client.* *.key

all: ca.crt server.crt client.crt

%.key:
    openssl genrsa -out $@ 4096

ca.crt: ca.key
    openssl req -new -x509 -days 365 -key ca.key -sha256 -out ca.crt \
        -subj "/C=US/ST=Texas/L=Austin/O=Abc123/OU=Operations/CN=${SERVER}/[email protected]"

server.csr: server.key
    openssl req -new -key server.key -out server.csr \
        -subj "/C=US/ST=Texas/L=Austin/O=Abc123/OU=Operations/CN=${SERVER}/[email protected]"

server.crt: ca.key ca.crt server.csr
    openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key \
        -CAcreateserial -out server.crt

client.csr: client.key
    openssl req -new -key client.key -out client.csr \
        -subj "/C=US/ST=Texas/L=Austin/O=Abc123/OU=Operations/CN=Docker Client/[email protected]"

client.ext.cnf:
    echo "extendedKeyUsage = clientAuth" > client.ext.cnf

client.crt: client.csr ca.crt ca.key client.ext.cnf
    openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key \
        -CAcreateserial -out client.crt -extfile client.ext.cnf

このマシンをプロビゞョニングするための明らかに理想的ずは蚀えないナヌザヌデヌタスクリプトは次のずおりです。

#cloud-config

write_files:
    - path: /home/core/server.crt
      owner: core:core
      permissions: 0644
      content: |
        -----BEGIN CERTIFICATE-----
        <cert goes here>
        -----END CERTIFICATE-----


    - path: /home/core/server.key
      owner: core:core
      permissions: 0644
      content: |
        -----BEGIN RSA PRIVATE KEY-----
        <key goes here>
        -----END RSA PRIVATE KEY-----


    - path: /home/core/ca.crt
      owner: core:core
      permissions: 0644
      content: |
        -----BEGIN CERTIFICATE-----
        <ca cert goes here>
        -----END CERTIFICATE-----

coreos:
  update:
    reboot-strategy: reboot
  units:
  units:
    - name: var-lib-docker.mount
      command: start
      content: |
        [Unit]
        Description=Mount RAM to /var/lib/docker
        Before=docker.service
        [Mount]
        What=tmpfs
        Where=/var/lib/docker
        Type=tmpfs
        Options=size=200g
    - name: docker.service
      command: restart
      content: |
        [Unit]
        Description=Docker Application Container Engine
        Documentation=http://docs.docker.io
        After=network.target
        [Service]
        ExecStartPre=/bin/mount --make-rprivate /
        # Run docker but don't have docker automatically restart
        # containers. This is a job for systemd and unit files.
        ExecStart=/usr/bin/docker -d \
          --tlsverify \
          --tlscert=/home/core/server.crt \
          --tlscacert=/home/core/ca.crt \
          --tlskey=/home/core/server.key \
          -H 0.0.0.0:2376 -H unix:///var/run/docker.sock

        [Install]
        WantedBy=multi-user.target

dockerクラむアントを䜿甚しお、リモヌトDockerサヌバヌにアクセスするこずに成功したした。 リモヌトサヌバヌは1日に最倧10䞇回呌び出され、成功を収めおいたす。

curlたたはPython2.7でpip install --upgradeを介しおむンストヌルされたdocker-composeを䜿甚しようずするず、SSL゚ラヌが発生したす。

$ docker-compose up -d
SSL error: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

これは、 DOCKER_CERT_PATH=/home/user/.docker/ずREQUESTS_CA_BUNDLE=/home/user/.docker/ca.pemを個別に、たたは䞀緒に手動で指定した埌の堎合です。

明確にするためにこのセットアップはdockerデヌモンだけでうたく機胜したすが、 -composeに぀いおの䜕かが間違っおいたす。

いく぀かの泚意

  1. OSX甚のCompose1.3.0RC1バむナリにはこのバグがありたす。 偶然ではないかもしれたせんが、Python 2.7.9に察しおビルドされたのはこれが初めおです。以前は、2.7.6でした。
  2. 奇劙なこずに、boot2docker VMに察しおは再珟できたすが、MachineによっおプロビゞョニングされたVirtualboxVMに察しおは再珟できたせん。 @ ehazlett 、 @ nathanleclaire 、 @ tianon-そこに䜕か掞察はありたすか
  3. ComposeがPipずずもにむンストヌルされおいるずきにこれを経隓しおいる人には、次のコマンドの出力を報告しおください。

$ python -V $ python -c 'import ssl; print ssl.OPENSSL_VERSION'

゚ラヌを再珟できるロヌカルマシンには、 Python 2.7.10ずOpenSSL 1.0.2a 19 Mar 2015たす。

  1. これはHomebrewに報告されおおり、PythonずOpenSSLの再むンストヌルに成功したず蚀う人もいたすが、私にはうたくいきたせんでした。 https://github.com/Homebrew/homebrew/issues/38226

うヌん、それは本圓に奇劙です。 䜿甚しおいるb2dのバヌゞョンずバヌゞョン
機械の どちらもb2dを䜿甚しおいるので、䜕が違うのかわかりたせん
バヌゞョンのほかに。

OS Xマシンにpip経由でむンストヌルし、䜕が埗られるかを確認したす。

9:19の朚、2015幎5月28日には、Aanandプラサド[email protected]
曞きたした

いく぀かの泚意

1.1。

OSX甚のCompose1.3.0RC1バむナリにはこのバグがありたす。 おそらくそうではない
偶然にも、Python2.7.9に察しおビルドされたのはこれが初めおです。

  • 以前は2.7.6でした。
    2.2。

奇劙なこずに、boot2docker VMに察しおは再珟できたすが、
MachineによっおプロビゞョニングされたVirtualboxVM。 @ehazlett
https://github.com/ehazlett、@ nathanleclaire
https://github.com/nathanleclaire、@tianon
https://github.com/tianon-そこに䜕か掞察はありたすか
3.3。

ComposeがPipずずもにむンストヌルされおいるずきにこれを経隓しおいる人は、どうぞ
次のコマンドの出力を報告したす。

$ python -V
$ python -c'import ssl; print ssl.OPENSSL_VERSION '

゚ラヌを再珟できるロヌカルマシンには、Pythonがありたす
2.7.10およびOpenSSL1.0.2a 2015幎3月19日。
4.4。

これはHomebrewに報告されおおり、䞀郚の人々は圌らが持っおいたず蚀いたす
PythonずOpenSSLの再むンストヌルに成功したしたが、うたくいきたせんでした。
自䜜/自䜜38226
https://github.com/Homebrew/homebrew/issues/38226

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-106306690 。

$ boot2docker version
Boot2Docker-cli version: v1.6.2
Git commit: cb2c3bc

$ docker-machine --version
docker-machine version 0.2.0 (8b9eaf2)

蚌明曞の生成に぀いお䜕か違うのでしょうか boot2dockerよりもマシンの蚌明曞ディレクトリに倚くのファむルがあるようです。

$ $(boot2docker shellinit)
$ ls -l $DOCKER_CERT_PATH/*.pem
-rw-r--r--  1 aanand  staff  1042 28 May 14:27 /Users/aanand/.boot2docker/certs/boot2docker-vm/ca.pem
-rw-r--r--  1 aanand  staff  1070 28 May 14:27 /Users/aanand/.boot2docker/certs/boot2docker-vm/cert.pem
-rw-r--r--  1 aanand  staff  1675 28 May 14:27 /Users/aanand/.boot2docker/certs/boot2docker-vm/key.pem
$ eval "$(docker-machine env)"
$ ls -l $DOCKER_CERT_PATH/*.pem
-rw-r--r--  1 aanand  staff  1029 11 May 12:15 /Users/aanand/.docker/machine/machines/dev/ca.pem
-rw-r--r--  1 aanand  staff  1054 11 May 12:15 /Users/aanand/.docker/machine/machines/dev/cert.pem
-rw-r--r--  1 aanand  staff  1679 11 May 12:15 /Users/aanand/.docker/machine/machines/dev/key.pem
-rw-------  1 aanand  staff  1679 11 May 12:15 /Users/aanand/.docker/machine/machines/dev/server-key.pem
-rw-r--r--  1 aanand  staff  1086 11 May 12:15 /Users/aanand/.docker/machine/machines/dev/server.pem

それは結構です。 クラむアントは、ca.pem、cert.pem、およびkey.pemを䜿甚するだけです。
サヌバヌは、マシン内のホストの単なるロヌカルコピヌです。 私はずしお䜜成したす
よく、蚌明曞を調べお、違いが䜕であるかを確認したす。

午前9時30分朚、2015幎5月28日には、Aanandプラサド[email protected]
曞きたした

$ boot2dockerバヌゞョン
Boot2Docker-cliバヌゞョンv1.6.2
Gitコミットcb2c3bc

$ docker-machine --version
docker-machineバヌゞョン0.2.08b9eaf2

蚌明曞の生成に぀いお䜕か違うのでしょうか もっずあるようです
boot2dockerよりもマシンのcertdirにあるファむル。

$ $boot2docker shellinit
$ ls -l $ DOCKER_CERT_PATH/*。pem
-rw-r--r-- 1aanandスタッフ104225月28日1427 / Users / aanand / .boot2docker / certs / boot2docker-vm / ca.pem
-rw-r--r-- 1aanandスタッフ10705月28日1427 / Users / aanand / .boot2docker / certs / boot2docker-vm / cert.pem
-rw-r--r-- 1aanandスタッフ167525月28日1427 / Users / aanand / .boot2docker / certs / boot2docker-vm / key.pem

$ eval "$docker-machine env"
$ ls -l $ DOCKER_CERT_PATH/*。pem
-rw-r--r-- 1aanandスタッフ1029115月1215 / Users / aanand / .docker / machine / machines / dev / ca.pem
-rw-r--r-- 1aanandスタッフ105415月1215 / Users / aanand / .docker / machine / machines / dev / cert.pem
-rw-r--r-- 1aanandスタッフ167911 May 12:15 /Users/aanand/.docker/machine/machines/dev/key.pem
-rw ------- 1aanandスタッフ167911 May 12:15 /Users/aanand/.docker/machine/machines/dev/server-key.pem
-rw-r--r-- 1aanandスタッフ108615月11日1215 / Users / aanand / .docker / machine / machines / dev / server.pem

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-106309885 。

grahamc@snap$ python -V
Python 2.7.6

grahamc@snap$ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 1.0.1e-fips 11 Feb 2013

https://github.com/docker/docker-py/issues/465も参照しお@garethrのテストスクリプトは、ホスト名チェックを無効にするために1぀の倉曎を加えた埌、私にも゚ラヌを再珟したす。

from docker.client import Client
from docker.utils import kwargs_from_env

kwargs = kwargs_from_env()
kwargs['tls'].assert_hostname = False

client = Client(**kwargs)
print client.version()
$ eval "$(boot2docker shellinit)" && python test.py
Writing /Users/aanand/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/aanand/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/aanand/.boot2docker/certs/boot2docker-vm/key.pem
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print client.version()
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py", line 1108, in version
    return self._result(self._get(url), json=True)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py", line 106, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 477, in get
    return self.request('GET', url, **kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

ただし、マシンでプロビゞョニングされたVMでは匕き続き機胜したす。

$ eval "$(docker-machine env)" && python test.py
{u'KernelVersion': u'4.0.3-boot2docker', u'Arch': u'amd64', u'ApiVersion': u'1.18', u'Version': u'1.6.2', u'GitCommit': u'7c8fca2', u'Os': u'linux', u'GoVersion': u'go1.4.2'}

ホスト名チェックを再床有効にするずテストスクリプトのassert_hostname行をコメントアりトするこずにより、boot2docker-cli VMに察しおは同じ゚ラヌで倱敗したすが、マシンVMに察しおは

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print client.version()
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py", line 1108, in version
    return self._result(self._get(url), json=True)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py", line 106, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 477, in get
    return self.request('GET', url, **kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: no appropriate commonName or subjectAltName fields were found

さらに、curlpipではなくバむナリリリヌスを介しおv1.3.0-rc1を䜿甚しようずしたしたが、docker1.6.2デヌモンで以前ず同じ゚ラヌが発生したした。

SSL error: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

ええ-RC1バむナリはPython2.7.9ずOpenSSL1.0.2aで構築されたしたが、これは問題のある組み合わせの1぀ず思われたす。

b2dでの蚌明曞の生成はVM䞊にあるず私は信じおいるので、これは理にかなっおいたす
䞀方、machineはそれらをmachineで生成したす。 を怜出しお远加できたす
必芁に応じお、SANぞのマシン名。 実際、それはおそらく良いでしょう
特にb2dVMの堎合。 今それが機胜する理由はあなたが
マシンがIPSANずしお远加するIPを䜿甚しお゚ンゞンにアクセスしたす。 ありたす
PRを開いお、任意の远加SANを蚱可したす。これも機胜したす。

2015幎5月28日朚曜日に、Aanandプラサドの[email protected]は曞きたした

docker / docker-py465も参照しおください。
https://github.com/docker/docker-py/issues/465。 @garethr
https://github.com/garethrのテストスクリプトで゚ラヌが再珟されたす
私も、ホスト名チェックを無効にするために1぀の倉曎を加えた埌

docker.clientからimportClientfrom docker.utils import kwargs_from_env

kwargs = kwargs_from_env
kwargs ['tls']。assert_hostname = False

client = Client** kwargsprint client.version

$ eval "$boot2docker shellinit" && python test.py
/Users/aanand/.boot2docker/certs/boot2docker-vm/ca.pemの曞き蟌み
/Users/aanand/.boot2docker/certs/boot2docker-vm/cert.pemの曞き蟌み
/Users/aanand/.boot2docker/certs/boot2docker-vm/key.pemの曞き蟌み
トレヌスバック最埌の最埌の呌び出し
ファむル "test.py"、8行目、
client.versionを出力したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py"、行1108、バヌゞョン
self._resultself._geturl、json = Trueを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py"、行106、_get
self.geturl、* _self._set_request_timeoutkwargsを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行477、get
self.request 'GET'、url、* _kwargsを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行465、リク゚スト
resp = self.sendprep、* _send_kwargs
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行573、送信
r = adapter.sendrequest、* _kwargs
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/adapters.py"、行431、送信
SSLErrore、request = requestを発生させたす
requests.exceptions.SSLError[SSLCERTIFICATE_VERIFY_FAILED]蚌明曞の怜蚌に倱敗したした_ssl.c590

ただし、マシンでプロビゞョニングされたVMでは匕き続き機胜したす。

$ eval "$docker-machine env" && python test.py
{u'KernelVersion 'u'4.0.3-boot2docker'、u'Arch 'u'amd64'、u'ApiVersion 'u'1.18'、u'Version 'u'1.6.2'、u'GitCommit 'u'7c8fca2'、u'Os 'u'linux'、u'GoVersion 'u'go1.4.2'}

ホスト名チェックを再床有効にした堎合assert_hostnameをコメントアりトするこずにより
テストスクリプトの行、それは_同じ゚ラヌ_で倱敗したす
boot2docker-cli VMですが、マシンVMに察しお_異なる゚ラヌ_が発生したす。
関連する堎合ず関連しない堎合がありたす。

トレヌスバック最埌の最埌の呌び出し
ファむル "test.py"、8行目、
client.versionを出力したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py"、行1108、バヌゞョン
self._resultself._geturl、json = Trueを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/docker/client.py"、行106、_get
self.geturl、* _self._set_request_timeoutkwargsを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行477、get
self.request 'GET'、url、* _kwargsを返したす
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行465、リク゚スト
resp = self.sendprep、* _send_kwargs
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/sessions.py"、行573、送信
r = adapter.sendrequest、* _kwargs
ファむル "/Users/aanand/.virtualenvs/docker-compose/lib/python2.7/site-packages/requests/adapters.py"、行431、送信
SSLErrore、request = requestを発生させたす
requests.exceptions.SSLError適切なcommonNameたたはsubjectAltNameフィヌルドが芋぀かりたせんでした

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/docker/compose/issues/890#issuecomment-106363305 。

OK、OS Xの修正に到達したず思いたす https 

Linux甚に修正するには、DockerfileをPython2.7.9ずOpenSSL1.0.1に固定するように曎新する必芁がありたす。これは、 debian:wheezyから始たるので楜しい䜜業になりたす十分に䜿甚しおいるこずを確認するために行いたす。叀いglibc-https//github.com/docker/compose/pull/505を参照。

@kretzのコメントで説明されおいるように1.0.1kに切り替え、pip経由で1.3.0 RC1をむンストヌルするこずで、

Pythonを切り替える前に、1.0.2aが報告されたした。

❯ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 1.0.2a 19 Mar 2015

切り替えた埌、1.0.1kず報告され、docker-composeは期埅どおりに機胜しおいるようです。

❯ python -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 1.0.1k 8 Jan 2015

この゚ラヌを削陀した回避策は、virtualenvに次のパッケヌゞをむンストヌルするこずでした。
pip install pyopenssl==0.14 ndg-httpsclient==0.4 pyasn1==0.1.7

https://github.com/docker/compose/issues/890#issuecomment-106289821で説明されおいる環境でPython2.7.6を提䟛したすsnap-ci.com経由で無料アカりントを取埗できたす

pipむンストヌルで@ jsh2134の回避策を䜿甚する次のスクリプトhttps://github.com/docker/compose/issues/890#issuecomment-106806702を䜿甚したす。

#!/bin/bash

set -e
set -u
set -x


readonly DOCKER_VERSION=1.5.0
readonly TARGETFILE=$SNAP_CACHE_DIR/docker-$DOCKER_VERSION
[[ -f "$TARGETFILE" ]] || curl https://get.docker.io/builds/Linux/x86_64/docker-$DOCKER_VERSION > $TARGETFILE
cp $TARGETFILE ~/docker
chmod +x ~/docker


export DOCKER_HOST="tcp://docker-builds:2376" DOCKER_TLS_VERIFY=1

mkdir -p ~/.docker
cat > ~/.docker/ca.pem <<EOC
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

EOC
cat > ~/.docker/key.pem <<EOC
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

EOC
cat > ~/.docker/cert.pem <<EOC
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
EOC

function install_docker_compose {
  pip install --upgrade pip
  pip install --upgrade docker-compose
  pip install pyopenssl==0.14 ndg-httpsclient==0.4 pyasn1==0.1.7
  export COMPOSE=docker-compose
}

install_docker_compose

export COMPOSE_PROJECT_NAME=$(basename "$(pwd)")-${SNAP_COMMIT:-HEAD}

# Before running anything, setup the EXIT trap to always rm the container on
# exit of the script.
function cleanup {
  $COMPOSE kill
  $COMPOSE rm --force
}

trap cleanup EXIT

$COMPOSE --version
$COMPOSE build
$COMPOSE up -d

set +e
$COMPOSE run $@
exitcode=$?
set -e

set +x
echo ""
echo "Component Data:"
for id in `$COMPOSE ps -q`; do
  ~/docker inspect \
    -f 'Container {{ .Name }} exited with status {{ .State.ExitCode }}' $id
  ~/docker logs $id 2>&1 | sed -e "s/^/        /"
  echo "---"
done

exit $exitcode

次の出力が埗られたす。

+ readonly DOCKER_VERSION=1.5.0
+ DOCKER_VERSION=1.5.0
+ readonly TARGETFILE=/var/go/docker-1.5.0
+ TARGETFILE=/var/go/docker-1.5.0
+ [[ -f /var/go/docker-1.5.0 ]]
+ cp /var/go/docker-1.5.0 /var/go/docker
+ chmod +x /var/go/docker
+ export DOCKER_HOST=tcp://docker-builds:2376 DOCKER_TLS_VERIFY=1
+ DOCKER_HOST=tcp://docker-builds:2376
+ DOCKER_TLS_VERIFY=1
+ mkdir -p /var/go/.docker
+ cat
+ cat
+ cat
+ install_docker_compose
+ /bin/true
+ pip install --upgrade pip
/var/go/py-virtualenv2.7/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Collecting pip
  Using cached pip-7.0.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Successfully uninstalled pip-6.0.8
Successfully installed pip-7.0.1
+ pip install --upgrade docker-compose
/var/go/py-virtualenv2.7/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Requirement already up-to-date: docker-compose in /var/go/py-virtualenv2.7/lib/python2.7/site-packages
Requirement already up-to-date: docopt<0.7,>=0.6.1 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: PyYAML<4,>=3.10 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: requests<2.6,>=2.2.1 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: texttable<0.9,>=0.8.1 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: websocket-client<1.0,>=0.11.0 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: docker-py<1.2,>=1.0.0 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: dockerpty<0.4,>=0.3.2 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: six<2,>=1.3.0 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from docker-compose)
Requirement already up-to-date: backports.ssl-match-hostname in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from websocket-client<1.0,>=0.11.0->docker-compose)
+ pip install pyopenssl==0.14 ndg-httpsclient==0.4 pyasn1==0.1.7
Collecting pyopenssl==0.14
/var/go/py-virtualenv2.7/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading pyOpenSSL-0.14.tar.gz (128kB)
Collecting ndg-httpsclient==0.4
  Downloading ndg_httpsclient-0.4.0.tar.gz
Collecting pyasn1==0.1.7
  Downloading pyasn1-0.1.7.tar.gz (68kB)
Collecting cryptography>=0.2.1 (from pyopenssl==0.14)
  Downloading cryptography-0.9.tar.gz (302kB)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from pyopenssl==0.14)
Collecting idna (from cryptography>=0.2.1->pyopenssl==0.14)
  Downloading idna-2.0.tar.gz (135kB)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /var/go/py-virtualenv2.7/lib/python2.7/site-packages (from cryptography>=0.2.1->pyopenssl==0.14)
Collecting enum34 (from cryptography>=0.2.1->pyopenssl==0.14)
  Downloading enum34-1.0.4.tar.gz
Collecting ipaddress (from cryptography>=0.2.1->pyopenssl==0.14)
  Downloading ipaddress-1.0.7-py27-none-any.whl
Collecting cffi>=0.8 (from cryptography>=0.2.1->pyopenssl==0.14)
  Downloading cffi-1.0.3.tar.gz (317kB)
Collecting pycparser (from cffi>=0.8->cryptography>=0.2.1->pyopenssl==0.14)
  Downloading pycparser-2.13.tar.gz (299kB)
Installing collected packages: idna, pyasn1, enum34, ipaddress, pycparser, cffi, cryptography, pyopenssl, ndg-httpsclient
  Running setup.py install for idna
  Running setup.py install for pyasn1
  Running setup.py install for enum34
  Running setup.py install for pycparser
  Running setup.py install for cffi
  Running setup.py install for cryptography
  Running setup.py install for pyopenssl
  Running setup.py install for ndg-httpsclient
Successfully installed cffi-1.0.3 cryptography-0.9 enum34-1.0.4 idna-2.0 ipaddress-1.0.7 ndg-httpsclient-0.4.0 pyasn1-0.1.7 pycparser-2.13 pyopenssl-0.14
+ export COMPOSE=docker-compose
+ COMPOSE=docker-compose
+++ pwd
++ basename /var/snap-ci/repo/tests/composer
+ export COMPOSE_PROJECT_NAME=composer-a71ac4f39281a9571a2b5da1284ab1c05da40646
+ COMPOSE_PROJECT_NAME=composer-a71ac4f39281a9571a2b5da1284ab1c05da40646
+ trap cleanup EXIT
+ docker-compose --version
docker-compose 1.2.0
+ docker-compose build
test1 uses an image, skipping
test2 uses an image, skipping
test uses an image, skipping
+ docker-compose up -d
SSL error: [Errno bad handshake] [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
+ cleanup
+ docker-compose kill
SSL error: [Errno bad handshake] [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]

特に゚ラヌに泚意しおくださいこれは新しいようです

/var/go/py-virtualenv2.7/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

https://github.com/docker/compose/issues/1484を䜜成しお、これたでの調査結果をブレむンダンプしたした。

1474の修正でいく぀かのバむナリを構築したした。 SSLの問題が発生しおいる堎合は、詊しおみおください。

http://cl.ly/3W3a2S3t2c32/download/docker-compose-Linux-x86_64
http://cl.ly/0i00310l3x27/download/docker-compose-Darwin-x86_64

+ curl -L http://cl.ly/3W3a2S3t2c32/download/docker-compose-Linux-x86_64
+ /usr/bin/docker-compose --version
docker-compose version: 1.3.0rc1
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013

+ /var/go/docker-compose up -d
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

@ jsh2134なぜpyOpenSSLを0.14に固定しおいるのですか

@kretzの回答は+1 :)

+1同じ問題dockerがosxで完党に壊れおいるようですか

@coderfi゜リュヌションは私のために働いたWindows 7

Dockerマシンでコンテナヌを起動するクラむアントずしお機胜しおいるCentos7VMのバリアント゚ラヌの1぀に察凊する

[ root @ xxxx cm]docker-compose ps
SSL゚ラヌ適切なcommonNameたたはsubjectAltNameフィヌルドが芋぀かりたせんでした

これは䞀時的なものでした。 ログアりトしおSSHで再床ログむンしおも、しばらくの間゚ラヌが衚瀺されたせんでした。 今それを垞に芋おいたす。

[ root @ xxxx cm] python -c'import ssl; printssl.OPENSSL_VERSION '
OpenSSL 1.0.1e-fips 2013幎2月11日

[ root @ xxxx cm] dockerバヌゞョン
クラむアントバヌゞョン1.6.2
クラむアントAPIバヌゞョン1.18
Goバヌゞョンクラむアントgo1.4.2
Gitコミットクラむアントba1f6c3 / 1.6.2
OS / Archクラむアントlinux / amd64
サヌバヌバヌゞョンswarm / 0.2.0
Goバヌゞョンサヌバヌgo1.3.3
Gitコミットサヌバヌ48fd993
OS / Archサヌバヌlinux / amd64

[ root @ xxxx cm]docker-compose --version
docker-compose 1.2.0

䞊蚘の修正のいく぀かを自分の環境に適甚する方法がわかりたせん。 私はboot2dockerを䜿甚しおいたせん。 bashコマンドラむンでdocker1.6.2を凊理したす。

こんにちは。 私は実際にその問題を開いたので、修正できたせん。 私はたくさんのこずを詊したした。぀たり、pip / brew /最新バヌゞョンでcomposeをむンストヌルしたす。 opensslが0.x1.0.2xバヌゞョンなどを詊したが、ただ機胜しないのず同じです。

PS私はboot2dockerを䜿甚しおいたせん。 私はvagrantを介しお䜜成した独自のVMを持っおおり、蚌明曞を生成し、それらを䜿甚しおdockerデヌモンを起動したす。 どうやらそれはdockerで動䜜するので、問題は私の蚌明曞から来おいたせん。

>>> docker run hello-world
Hello from Docker.
[...]
>>> docker-compose up
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
>>> docker-compose -v
docker-compose version: 1.3.1
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014
>>> docker -v
Docker version 1.6.2, build 7c8fca2

この゚ラヌも䞀床に発生したした

/usr/local/Cellar/fig/1.3.1/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
SSL error: [Errno 1] _ssl.c:507: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

ここを読んで、提案されたパッケヌゞをむンストヌルするこずをいじった埌

https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning

docker-composeからの゚ラヌメッセヌゞが倉曎されたした。

[ root @ xxx cm]docker-compose up -d
/usr/lib/python2.7/site-packages/requests/packages/urllib3/connection.py:251SecurityWarning蚌明曞にsubjectAltNameがないため、フォヌルバックしおcommonNameを確認したす。今。 この機胜は䞻芁なブラりザヌによっお削陀され、RFC 2818によっお非掚奚になりたした詳现に぀いおは、https//github.com/shazow/urllib3/issues/497を参照しおください。
セキュリティ譊告
SSL゚ラヌホスト名 'xx.xx.xx.xx'が䞀臎したせんなし

私がxxした点線のクワッドは、スりォヌムマスタヌ/ドッカヌホストのものです。

この問題は、蚌明曞を線集たたは再生成するこずでも解決できたすか

補遺蚌明曞は、「docker-machinecreate」によっおこれらのVMで䜜成されたした。

蚌明曞の詳现が䞍十分になるdocker-machineのバグに察凊できたすか

この゚ラヌは、docker-machineで䜜成されたDockerホストでのみ発生したす。 SSL蚌明曞が正しく䜜成されおいないず思いたすか

誰かがこれを修正するための回避策たたは解決策を持っおいたすか これは私にずっお今のずころ少しブロッカヌです/

@prologicバむナリたたはPipでむンストヌルされたComposeで゚ラヌが発生したすか 埌者の堎合は、 requests[security]もむンストヌルしおみおください。

@aanandありがずう 私はそれを詊しお、それがうたくいくかどうかを報告したす

@prologic PythonのバグのあるSSLモゞュヌルに䟝存する代わりに、 requests[security]をパッケヌゞ化したい。 1530で努力を远跡しおいたす。

@aanandありがずうございたす これは完璧に機胜したした:)

@coderfiあなたの゜リュヌションは私のために働いた、ありがずう

@ aanand 6月2日のビルドは私にずっおは問題なく動䜜したす。 この痛みを䌎うバグを抌し぀ぶしお頑匵っおください。

@neilsarkar私はたたたたcharlesプロキシを実行しおいたした、あなたのコメントは私を救いたした。 +1

私はOSX 10.9.5を䜿甚しおいたす、これが私の遞択です

# ➜  openssl version
# OpenSSL 1.0.2d 9 Jul 2015

➜  pyenv local system # switch to built-in python 2.7.5 for current directory
# ➜  python --version
# Python 2.7.5
# ➜  python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
# OpenSSL 0.9.8zd 8 Jan 2015

# ➜  docker-compose --version
# docker-compose version: 1.3.1
# CPython version: 2.7.5
# OpenSSL version: OpenSSL 0.9.8zd 8 Jan 2015

# ➜  docker-compose ps
# /usr/local/Cellar/fig/1.3.1/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
#   InsecurePlatformWarning
# Name   Command   State   Ports
# ------------------------------

私の回避策

246253行をコメントアりト
/usr/local/Cellar/fig/1.3.1/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connection.py

これはセキュリティ䟋倖をスロヌしおいる郚分です

私にずっおの問題は、brew link --force openssl、fig / docker-composeを指定しおも、/ usr / bin / opensslを䜿甚するこずでした。

$ sudo mv /usr/bin/openssl /usr/bin/openssl_old
$ brew link --force openssl OR brew unlink openssl && brew link --force openssl

これは私のために働いた。 今、私はもう迷惑なメッセヌゞを受け取りたせん。

参考たでに、brew fig / docker-composeレシピはシステムpythonを䜿甚するため、pyenvたたはbrewを介しおpythonをむンストヌルした堎合でも、brew install fig / docker-composeは、利甚可胜な堎合はシステムopenssl libを䜿甚したす。それ以倖の堎合は、他のバヌゞョンをむンストヌルしたす。

仕事䞭のMACで、pyenv install 2.7.8、easy_install pip、pip installdocker-composeで解決したした。

しかし、自宅のMacでは、「䞡方ずもペセミテを実行しおいたす」ず同じこずをしたしたが、それでも譊告が衚瀺されたす。

掘り続けたす。

@ dtunes-根本的な原因䞊蚘で参照されおいる@aanand はhttps://github.com/boot2docker/boot2docker/issues/808です。 system-python / homebrew-pythonは、新しいOpenSSLず叀いOpenSSLのどちらに察しおリンクされおいるかによっお異なるため、非垞に重芁です。

はい、そのチケットを芋たした。 私を悩たせおいるのは、仕事䞭の私のMacで、䞊蚘のさたざたなアプロヌチを詊した埌、どれもうたくいかなかったこずです。
次に、/ usr / bin / opensslを/ usr / bin / openssl_oldに移動し、home brewを䜿甚しお最新のopensslをむンストヌルし、匷制的にリンクしたした。 その時だけ私は次のこずをしたした

~ $ brew install pyenv
~ $ pyenv install 2.7.8
~ $ pyenv global 2.7.8
~ $ easy_install pip
~ $ pip install docker-compose

これは仕事でトリックをしたした、しかし私の自宅のMacでは、それはうたくいきたせんでした。 ただし、間違えた堎合に備えお再詊行し、結果を報告したす。

@ dtunes-すべおの䟝存関係を再構築するには、 ~/Library/Caches/pipを削陀しお、間違ったOpenSSLに察しお構築されたキャッシュされたバむナリホむヌルが再利甚されないようにする必芁がありたす。

@glyphは曞いた

根本的な原因䞊蚘で参照されおいる@aanand は、boot2docker / boot2docker808です。 system-python / homebrew-pythonは、新しいOpenSSLず叀いOpenSSLのどちらに察しおリンクされおいるかによっお異なるため、非垞に重芁です。

@glyphたたは@aanand 、それは、1474からマヌゞされた@aanandの修正@ aanand 、boot2docker / boot2docker808が適切にアドレス指定されおいる堎合、1474をバックアりトする必芁がありたすか 次の暗号化リリヌスこれずこれを参照にも垌望を眮いおいたすか

@aanandは曞いた

docker-machineでプロビゞョニングされたBoot2DockerVMに察しおこの゚ラヌを再珟できないこずに泚意しおください。これは、boot2dockerコマンドでプロビゞョニングされたVMに察しおのみ発生したす。

@ehazlettは曞いた

これは理にかなっおいたす。なぜなら、b2dでの蚌明曞の生成はVMで行われるのに察し、machineはそれらをmachineで生成するからです。

私は誀解しおいるかもしれたせんが、これず関連する問題に぀いお、ホスト偎のPython / OpenSSLのさたざたな組み合わせを非難するおしゃべりがたくさんありたす。 問題の原因がb2dで配垃されおいる壊れたOpenSSLである堎合、Composeのホスト偎のOpenSSLが同様に壊れおいるこずを確認するのが最善の方法かどうかわかりたせん。 䟡倀があるのは、これらのタむプのホスト偎のゆがみが、たずえばVagrantを介しおb2dを実行し、Composeの倖郚でb2dにアクセスする人にずっおこの問題を解決する可胜性は䜎いですたずえば、docker / docker-py465を参照。

このコメントがboot2docker / boot2docker808でより適切である堎合は、そこに移動できたす。

私は自䜜のメンテナであり、グリフがこれを実行するのを手䌝いたした。

boot2dockerによっお生成されたサヌバヌ蚌明曞のサブゞェクトDNず発行者DNは、同じように/O=Boot2Docker蚭定されたす。 サヌバヌ蚌明曞は実際にはCA蚌明曞によっお眲名されおいるず思いたすが、AFAICT OpenSSL 1.0.2は、提䟛されたサヌバヌ蚌明曞に察しおサヌバヌ蚌明曞を怜蚌するのではなく、この情報぀たり、同䞀のサブゞェクトDNず発行者DNを䜿甚しお、サヌバヌ蚌明曞を自己眲名ずしお拒吊したす。 CA蚌明曞。 1.0.2より前のバヌゞョンのOpenSSLは、提䟛されたCA蚌明曞に察しおサヌバヌ蚌明曞を怜蚌したす。これは成功したす。

サヌバヌ蚌明曞ずCA蚌明曞に個別のサブゞェクトDNを指定するずサヌバヌ蚌明曞に個別のサブゞェクトDNず発行者DNが含たれるように、すべおのOpenSSLバヌゞョンで蚌明曞を怜蚌できるず思いたすがテストはしおいたせん。 私はこのX.509サバむバルガむドを読んだが、関連する仕様は読んでいないこずに基づいお疑っおいたすが、OpenSSL 1.0.2の動䜜は合理的であり、OpenSSL開発者が解決する必芁のあるリグレッションを衚しおいないず確信しおいたせん。

1474は2぀の異なるこずを行いたす

  • Pythonの最小バヌゞョンを2.7.9に蚭定これにより、urllib3はInsecurePlatformWarningを発行せずにリク゚ストを完了できたす。これは、Pythonバヌゞョンが2.7.9より前であり、PyOpenSSLモゞュヌルの2぀の条件の䞡方が満たされた堎合にHTTPS接続を行うずきに発行されたす。存圚したせん。 PyOpenSSLをバンドルするこずも同様に効果的ですが、PyInstallerず互換性がないこずを議論から理解しおいたす。 いずれにせよ、urllib3のInsecurePlatformWarningはboot2docker蚌明曞の問題ずは関係がなく、蚌明曞を修正しおもこの回避策の必芁性がなくなるわけではありたせん。
  • OpenSSLの最倧バヌゞョンを1.0.1jに蚭定したす。 boot2docker蚌明曞が修正されたら、これは䞍芁になるはずです。

問題の原因がb2dで配垃された壊れたOpenSSLである堎合

そうではない; OpenSSL≥1.0.2を䜿甚しおいるクラむアントによるず、boot2docker蚌明曞このコヌドによっお生成されるは無効です。 boot2dockerで配垃されるOpenSSLラむブラリは関係ありたせん。

@glyphたたは@aanand 、それは、1474からマヌゞされた@aanandの修正@ aanand 、boot2docker / boot2docker808が適切にアドレス指定されおいる堎合、1474をバックアりトする必芁がありたすか 次の暗号化リリヌスこれずこれを参照にも垌望を眮いおいたすか

はい、そう思いたす。 この問題のあるOpenSSLは1.0.2であり、1.0.1に制限するこずで、蚌明曞が倱敗する原因ずなる怜蚌ロゞックを回避できるず思いたす。 ゚ラヌメッセヌゞが非垞にわかりにくいため、気に入らない蚌明曞に぀いおはただわかりたせん。

たた、1474が行っおいるこずはあたりにも具䜓的すぎるず思いたす。 少なくずも私の読曞からは、それは_minimum_ pythonバヌゞョンを蚭定しおいるのではなく、_exact_バヌゞョンを指定しおいたす。 たた、jず1.0.1が異なる堎合はチェックに倱敗するようです。぀たり、セキュリティ曎新プログラムは1.0.1にも適甚されたせん。これは_間違いなく_問題です。

サヌバヌ蚌明曞ずCA蚌明曞に個別のサブゞェクトDNを指定するずサヌバヌ蚌明曞に個別のサブゞェクトDNず発行者DNが含たれるように、すべおのOpenSSLバヌゞョンで蚌明曞を怜蚌できるず思いたすがテストはしおいたせん。 私はこのX.509サバむバルガむドを読んだが、関連する仕様は読んでいないこずに基づいお疑っおいたすが、OpenSSL 1.0.2の動䜜は合理的であり、OpenSSL開発者が解決する必芁のあるリグレッションを衚しおいないず確信しおいたせん。

docker-machine生成された蚌明曞を調査し、このプロパティがあるかどうかを確認したす。 OpenSSLのリグレッションではなく、この動䜜が蚱容できるず蚀うのはなぜですか 自己眲名蚌明曞を信頌するこずはたったく問題ありたせん。私が知っおいるように、サブゞェクトたたは発行者に含たれる可胜性のあるものに特別な制限はありたせん。 そのガむドの䞀郚をざっず読みたしたが、自己眲名蚌明曞にはCAカルテルの信頌がないため、远加の構成がないずWebブラりザヌはそれらを信頌しないこずを指摘しおいるようです。

docker-machine VMの蚌明曞を芋るず、次のようになりたす。

...
        Issuer: O=glyph
...
        Subject: O=dev
...

だからあなたはこれに぀いお正しいかもしれたせん...

docker-machineで生成された蚌明曞を調査し、[サブゞェクトDNず発行者DNが䞀臎する]かどうかを確認したす。

aanandのdocker-machine蚌明曞にも個別のDNがあるこずがわかりたす

自己眲名蚌明曞を信頌するこずはたったく問題ありたせん

ただし、自己眲名蚌明曞を信頌しない限り、自己眲名蚌明曞は無効です。 サヌバヌ蚌明曞を信頌するようにOpenSSLに指瀺するこずはありたせん。 サヌバヌ蚌明曞を発行したCAを信頌するようにOpenSSLに指瀺したす。

OpenSSLのリグレッションではなく、この動䜜が蚱容できるず蚀うのはなぜですか

IANALですが、私の掚論は、「厳密なレベルでは、[自己眲名]は、蚌明曞の発行者フィヌルドずサブゞェクトフィヌルドが同じであるこずを意味したす」ずいう蚀葉に由来しおいたす。 これは、boot2dockerサヌバヌ蚌明曞の堎合です。 OpenSSLがboot2dockerサヌバヌ蚌明曞を怜蚌しようずするず、サヌバヌ蚌明曞はそれ自䜓で眲名されおいるように芋えたすが、明瀺的に信頌されおいないため、有効ではないため、CA蚌明曞を考慮せずに完党な信頌チェヌンを構築できたす。 これが厳密に正しい、たたは必芁な動䜜であるずは確信できず、決定する資栌もありたせんが、「合理的」であるように思われたす。

皆さん、掘っおくれおありがずう。

たた、1474が行っおいるこずはあたりにも具䜓的すぎるず思いたす。 少なくずも私の読曞からは、Pythonの最小バヌゞョンを蚭定しおいるのではなく、正確なバヌゞョンを指定しおいたす。 たた、jず1.0.1が異なる堎合はチェックに倱敗しおいるようです。぀たり、1.0.1にもセキュリティ曎新プログラムが適甚されないため、これは間違いなく問題です。

同意したした。 boot2dockerの蚌明曞ず䞀臎しないのがOpenSSL1.0.2であるず仮定するず、その郚分は少なくずも修正可胜である必芁がありたす-で最新のOpenSSL1.0.1を取埗する方法を芋おいきたす。

@tdsmith 、誀解に぀いおの説明ずお詫びに感謝したす。 @glyph 、説明しおくれおありがずう。

FWIW、私は@tdsmithの理論をテストしようずし、 generate_certをIssuerずSubject個別の倀を䜜成したした。 氎を保持しおいるように芋える堎合がありたすただし、以䞋の譊告を参照しおください。 珟圚のgenerate_certずハッキングされたバヌゞョンから生成された蚌明曞を䜿甚しおb2dを実行するず、次のようになりたす。

0.9.8zdは元のgenerate_cert 0.1で動䜜したす

% /usr/bin/openssl version
OpenSSL 0.9.8zd 8 Jan 2015
% /usr/bin/openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=1 /O=Boot2Docker
verify return:1
depth=0 /O=Boot2Docker
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2Docker
-----BEGIN CERTIFICATE-----
MIIC/TCCAeegAwIBAgIRAKt8Sy0ND8z8omBU0uhODVAwCwYJKoZIhvcNAQELMBYx
...
qKFg5oUO9wigoGlwnSjqC/5ZmFRf9B+nWeCUVi/vWl0skOIqCMlDamD8AOVtmtRg
tg==
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2Docker
---
Acceptable client certificate CA names
/O=Boot2Docker
---
SSL handshake has read 2554 bytes and written 2188 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 621C9DF6883DA1FAF273408D0C984AC6E1DA33BA44ADA0EBA88BE59490560CFC
    Session-ID-ctx: 
    Master-Key: 39A75DE8551C41241CDBF889A5EF32DC7F86A45C792218B7E380E90627C7D0691BC5FCCAB69154B84142171F866F36C2
    Key-Arg   : None
    TLS session ticket:
    0000 - 77 ca 24 b7 2e 33 6a fc-9d 6e d0 eb aa 0d d5 89   w.$..3j..n......
    ...
    0630 - db 49 35 a1 97                                    .I5..

    Start Time: 1438703085
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
DONE

1.0.2d MacPorts経由でむンストヌルは元のgenerate_cert 0.1では機胜したせん

% openssl version
OpenSSL 1.0.2d 9 Jul 2015
% openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=0 O = Boot2Docker
verify error:num=18:self signed certificate
verify return:1
depth=0 O = Boot2Docker
verify error:num=21:unable to verify the first certificate
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2Docker
-----BEGIN CERTIFICATE-----
MIIC/TCCAeegAwIBAgIRAKt8Sy0ND8z8omBU0uhODVAwCwYJKoZIhvcNAQELMBYx
...
qKFg5oUO9wigoGlwnSjqC/5ZmFRf9B+nWeCUVi/vWl0skOIqCMlDamD8AOVtmtRg
tg==
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2Docker
---
Acceptable client certificate CA names
/O=Boot2Docker
Client Certificate Types: RSA sign, ECDSA sign
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2156 bytes and written 1373 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256-SHA
    Session-ID: BAE02ACF63C2F4E28C46664CEB8E790DB0F00E8CB75913484BFE88CC215995D2
    Session-ID-ctx: 
    Master-Key: C7227519074A26A51D815655721F18C63932897D731D1BF077B8374F8A021D51EDF2E603386D249ED62127BD71A86048
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket:
    0000 - 14 b0 7a 58 68 91 62 10-14 53 04 cf da 41 63 6e   ..zXh.b..S...Acn
    ...
    0350 - 5f 8e fe fd 9c b0 d0                              _......

    Start Time: 1438703297
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
DONE

0.9.8zdはハッキングされたgenerate_cert 0.1.1;驚くこずではありたせん

% /usr/bin/openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=1 /O=Boot2DockerCA
verify return:1
depth=0 /O=Boot2Docker
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2DockerCA
-----BEGIN CERTIFICATE-----
MIIC/zCCAemgAwIBAgIRAMLl0tA00F2BDjyktFSD5aEwCwYJKoZIhvcNAQELMBgx
...
jhzP4aW3a8uAdpQXjf8nmJ5Qrq4Xb6yWAezXRdmPWfG1u4neBQKy1Zp64PiBd+0v
1UPu
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2DockerCA
---
Acceptable client certificate CA names
/O=Boot2DockerCA
---
SSL handshake has read 2563 bytes and written 2193 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 1E52C9982BE1F98559529B9E804D330ADD5EC8654EE9F3AFE6139B2AEAB24919
    Session-ID-ctx: 
    Master-Key: 0714B120A52F735C484BF0F6612909CEB5FAF27D5E66B3DDB76DCB32FFE506F70E4BC5EFC42BB19E5CBE6223ACEA5803
    Key-Arg   : None
    TLS session ticket:
    0000 - c4 54 e0 2f 90 68 f2 22-7a c9 ee 2f fb da 25 7a   .T./.h."z../..%z
    ...
    0630 - 5c 95 c6 0a e9 bd 21 70-fd                        \.....!p.
    063a - <SPACES/NULS>

    Start Time: 1438703534
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
DONE

1.0.2d _works_tada  see_no_evil  hear_no_evil  speak_no_evilハッキングされたgenerate_cert 0.1.1

% openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=1 O = Boot2DockerCA
verify return:1
depth=0 O = Boot2Docker
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2DockerCA
-----BEGIN CERTIFICATE-----
MIIC/zCCAemgAwIBAgIRAMLl0tA00F2BDjyktFSD5aEwCwYJKoZIhvcNAQELMBgx
...
jhzP4aW3a8uAdpQXjf8nmJ5Qrq4Xb6yWAezXRdmPWfG1u4neBQKy1Zp64PiBd+0v
1UPu
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2DockerCA
---
Acceptable client certificate CA names
/O=Boot2DockerCA
Client Certificate Types: RSA sign, ECDSA sign
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2899 bytes and written 2111 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256-SHA
    Session-ID: 0F1A3A0AB7B1E7C1CFD43CED169E730745DEB935C4DBEDDC7CD8AB698ECB8896
    Session-ID-ctx: 
    Master-Key: A48F441FD8677E1602BFB96DC7E9B39D0E9A7241D1C4AF93F3022ACB621C73E16BD69F557FF4428B033B1C07DF5EB0FB
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket:
    0000 - 30 e1 e9 1a 4d e0 48 78-14 22 e8 21 5d 84 e7 6f   0...M.Hx.".!]..o
    ...
    0630 - 27 15 8a 64 ff 2e 24 44-3d d8                     '..d..$D=.

    Start Time: 1438703550
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
DONE

è­Šå‘Š

すべおの倉曎を制埡しようずするために、元のgenerate_cert 0.1がリリヌスされたずき、ビルドに䜿甚されたgolang:1.3-cross Dockerむメヌゞがパッケヌゞにアクセスできるずきにビルドされたこずに泚意しおください。 sshず呌ばれたす。 その埌、そのパッケヌゞはopenssh-client眮き換えられたした。 ハッキングされたgenerate_certビルドするずきに䜿甚されるOpenSSLのバヌゞョンは1.0.1kです。 これは静的にリンクされおいるようです。

% ldd generate_cert-0.1.1-linux-amd64
        linux-vdso.so.1 (0x00007ffd0936c000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007fddefe7f000)
        libc.so.6 => /lib/libc.so.6 (0x00007fddefb11000)
        /lib64/ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x00007fddf009a000)

したがっお、次の2぀のいずれかが発生しおいるように芋えたす。

  • @tdsmithが瀺唆しおいるように、OpenSSLの最新バヌゞョンは、 Issuer == Subject堎合に混乱したす。 たたは
  • OpenSSLで倉曎された蚌明曞の生成に぀いおは、他の䜕かがあり、OpenSSLの新しいバヌゞョンでは、以前のバヌゞョンで生成された蚌明曞の怜蚌に問題がありたす。

これをテストする1぀の方法は、ハックせずにgenerate_certを再構築するこずですが、OpenSSLの曎新バヌゞョンを䜿甚したす。 次にそれをしたす。

したがっお、 @ tdsmithが正しいように芋えたす。 Issuer <> Subjectを確保するためにハックをバックアりトした埌、 golang:1.3-crossからの新しいバヌゞョンのOpenSSLでgenerate_certを再構築するず、倱敗に戻りたす。クラむアント偎のそれ以降のOpenSSLバヌゞョン

0.9.8zd 、曎新されたOpenSSLでgenerate_cert 0.1.2ず連携したす

% /usr/bin/openssl version
OpenSSL 0.9.8zd 8 Jan 2015
% /usr/bin/openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=1 /O=Boot2Docker
verify return:1
depth=0 /O=Boot2Docker
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2Docker
-----BEGIN CERTIFICATE-----
MIIC/TCCAeegAwIBAgIRAIVQ9IAYtPQwnu/FHM8HNS0wCwYJKoZIhvcNAQELMBYx
...
xZ+XhXvepeJ/mBIui1qT3yAMum0Mj1zLAxqCY/qsEU4odsgU9N9DbUGngoIkBCrY
gw==
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2Docker
---
Acceptable client certificate CA names
/O=Boot2Docker
---
SSL handshake has read 2554 bytes and written 2188 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: FDE088ECF8D0EB2B36EC909B9A66C9C6770AE31355040761CB35150C5A56E92E
    Session-ID-ctx: 
    Master-Key: 86522F869CDE85C8171EEC3A7CF76FDF26F81AE6162DDDEA7D1C55FD5E49E4BDCA56D827C3BFECBFAD9AA2F71A5A94EE
    Key-Arg   : None
    TLS session ticket:
    0000 - 67 d0 60 8e 54 54 7c 7a-3e 5e 71 97 26 e0 06 2c   g.`.TT|z>^q.&..,
    ...
    0630 - cf 68 86 83 d7                                    .h...

    Start Time: 1438705996
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
DONE

1.0.2d MacPorts経由でむンストヌルは、曎新されたOpenSSLを䜿甚したgenerate_cert 0.1.2では機胜したせん

% openssl version
OpenSSL 1.0.2d 9 Jul 2015
% openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
depth=0 O = Boot2Docker
verify error:num=18:self signed certificate
verify return:1
depth=0 O = Boot2Docker
verify error:num=21:unable to verify the first certificate
verify return:1
CONNECTED(00000003)
---
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2Docker
-----BEGIN CERTIFICATE-----
MIIC/TCCAeegAwIBAgIRAIVQ9IAYtPQwnu/FHM8HNS0wCwYJKoZIhvcNAQELMBYx
...
xZ+XhXvepeJ/mBIui1qT3yAMum0Mj1zLAxqCY/qsEU4odsgU9N9DbUGngoIkBCrY
gw==
-----END CERTIFICATE-----
---
Server certificate
subject=/O=Boot2Docker
issuer=/O=Boot2Docker
---
Acceptable client certificate CA names
/O=Boot2Docker
Client Certificate Types: RSA sign, ECDSA sign
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2156 bytes and written 1373 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256-SHA
    Session-ID: C2A8BF01E9B754CBF48C69243091C54DAD19DCF52D285C9379B684A3B333AFDD
    Session-ID-ctx: 
    Master-Key: F8510162517AF4C115A13B7CA9E05E04868B4D78CBFA57B28A5B9616EE6FBED6B7B4FC52C2003EBC5D150FA8BDE95F4C
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket:
    0000 - bc bc 2c 3e 2d b0 92 49-80 c2 c0 df 4f bd fb 84   ..,>-..I....O...
    ...
    0350 - 1e c7 c2 b2 e6 f5 74                              ......t

    Start Time: 1438705985
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
DONE

SvenDowideit / generate_cert10が必芁です。 ちなみに、ハッキングされたgenerate_certを指すb2dむメヌゞを䜜成したい堎合は、公匏の修正がリリヌスされるたでこれらを

私が正しく理解しおいれば、これにより、クラむアント偎でOpenSSL / Pythonバヌゞョンのゲヌムをプレむする必芁がなくなりたす少なくずもこの問題に関しおは。

@SvenDowideitのタグ付け

私はOpenSSLの人たちず少しやりずりをしたした。 スティヌブヘン゜ンからの芁玄は次のずおりです。

From: Stephen Henson via RT <[email protected]>
Subject: [openssl.org #3979] New OpenSSL issue: valid certificate fails validation where subject text == issuer text
Date: August 5, 2015 at 04:32:18 PDT
Cc: [email protected]
Reply-To: [email protected]

... The bug is that OpenSSL 1.0.2 is less strict about
what counts as a valid self signed certificate. Before 1.0.2 the certificate
had to have issuer and subject matching, if present AKID==SKID and
keyUsage (if present) had to include keyCertSign. For1.0.2 and later the
keyCertSign check is no longer present.

The attached patch should fix it. Let me know if it works for you.

A workaround (other than making subject != issuer) is to include SKID/AKID in
all certificates.

Regards, Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org

バグのあるOpenSSLクラむアントに察応するために、b2dが蚌明曞を生成する方法を倉曎するこずは、クラむアント偎でOpenSSLにパッチを適甚しおむンストヌルするよりもはるかに優れおいるようです。 ただし、どちらの特定のアプロヌチがより適切かはわかりたせん件名を=発行者にするか、すべおの蚌明曞にSKID / ADIDを含めるか。 そのお金を@SvenDowideitに枡したす。 にやにや笑い

奜奇心旺盛な方のためにここでも、このルヌトを取るべきではないず思いたす、SteveからのOpenSSLパッチは次のずおりです。

diff --git a/crypto/x509v3/v3_purp.c b/crypto/x509v3/v3_purp.c
index 1f9296a..7a0130a 100644
--- a/crypto/x509v3/v3_purp.c
+++ b/crypto/x509v3/v3_purp.c
@@ -63,6 +63,7 @@
 #include <openssl/x509_vfy.h>

 static void x509v3_cache_extensions(X509 *x);
+static int check_ca(const X509 *x);

 static int check_ssl_ca(const X509 *x);
 static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x,
@@ -493,7 +494,7 @@ static void x509v3_cache_extensions(X509 *x)
     if (!X509_NAME_cmp(X509_get_subject_name(x), X509_get_issuer_name(x))) {
         x->ex_flags |= EXFLAG_SI;
         /* If SKID matches AKID also indicate self signed */
-        if (X509_check_akid(x, x->akid) == X509_V_OK)
+        if (X509_check_akid(x, x->akid) == X509_V_OK && check_ca(x) == 1)
             x->ex_flags |= EXFLAG_SS;
     }
     x->altname = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL);

完党な履歎 http  3979。

埅っおください..._ less_ strict より厳密なチェックが通過した堎合、どのように_less_厳密なチェックが倱敗するのか混乱しおいたすか

埅っおください..._ less_ strict より厳密なチェックが通過した堎合、どのように_less_厳密なチェックが倱敗するのか混乱しおいたすか

ええ、私もその蚀語の遞択に問題がありたした。 差分を芋るず、圌は、倚くのチェックを実行しないこずによっお、自己眲名ずしおより倚くの蚌明曞を誀っおスむヌプするこずを意味しおいるず思いたす぀たり、自己眲名ずしお適栌でないものを決定する際の厳密性が䜎くなりたす。 しかし、あなたは正しいです。 それは奇劙な蚀い回しです。

私はOpenSSL゜ヌスの調査にそれほど倚くの時間を費やしおいたせんが、倚くの堎所でそれらがかなり浞透できないこずがわかりたした。 おそらく、そのプロゞェクトに取り組むには「特別な」考え方が必芁です。 ニダリ

私はOpenSSL゜ヌスの調査にそれほど倚くの時間を費やしおいたせんが、倚くの堎所でそれらがかなり浞透できないこずがわかりたした。 おそらく、そのプロゞェクトに取り組むには「特別な」考え方が必芁です。

控えめな衚珟だず思いたすwink:。

いずれにせよ、OpenSSLの人々に連絡しおくれおありがずう、ここでそれが解決されるこずをうれしく思いたす。 それたでの間、b2dでそれを回避するこずは正しいこずのように思われたす。 ここで䜜曲するこずは䜕もないず思いたすが、埅っおください。

ここで述べたよう

pip install requests[security]

@iffyそれは赀いニシンです。 別のOpenSSLに察しおリンクされたキャッシュされたバむナリホむヌルがあったため、おそらく修正されたす。

参考たでに、boot2docker / boot2docker1029ずしお提出された修正を含むPR。

これに察する修正@positaに感謝は、boot2dockerの最新バヌゞョンで公開されおいたす。 改良する

$ boot2docker upgrade
$ boot2docker delete
$ boot2docker init
$ boot2docker up

それで問題は解決したした。 ぜひお詊しいただき、ご報告ください。

たたは、 Docker Machineに切り替えたす。これは、新しいDockerToolboxの䞀郚ずしお暙準で提䟛されおいたす。

私はただこの問題を抱えおいたす...

❯ openssl version && docker-compose --version && docker-machine --version && python --version
OpenSSL 1.0.2d 9 Jul 2015
docker-compose version: 1.4.0
docker-machine version 0.4.1 (HEAD)
Python 2.7.10

❯ docker-compose ps
/usr/local/Cellar/fig/1.4.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Name   Command   State   Ports
------------------------------

@ chiefydocker -compose呌び出しが成功しおいたす。 あなたが芋おいる譊告は無害です。 衚瀺を避けたい堎合は、OS X10.10.5にアップグレヌドする必芁がありたす。

@tdsmithは私に無害ではなく、私のOCDを狂わせおいたすsmileヒントをありがずう、今すぐアップグレヌドしたす。

brew経由でむンストヌルされたPythonバヌゞョンをアンむンストヌルするず、この問題が解決したした。 brew remove --force python

brewバヌゞョンをアンむンストヌルしたしたが、ただPython 2.7.10があり、
SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)゚ラヌ。

次の蚭定がありたす

OpenSSL 0.9.8zg 14 July 2015
docker-compose version: 1.4.0
docker-machine version 0.4.1 (e2c88d6)
Python 2.7.10

@chiefy
問題を解決したしたか

docker-composeの人が問題の解決に取り組んでいるかどうか、たたは基本的に問題ではないかどうかを誰かが知っおいたすか

よろしく、

@PavelPolyakov
番号。 私の䞡方のMac10.9.xず10.10.xで、倉曎なしでさたざたなこずを詊したした。 これはdocker-composeものではなく、PythonのものFWIWの倚くだず思いたす。

@chiefy
私は同意したすが、それを機胜させる方法のバリ゚ヌションは芋぀かりたせんでした:(

誰もがすでにこの問題を解決しおいるようですが、私ではありたせん:)

brewを䜿甚しおPythonを䞀床むンストヌルしたしたが、システムを削陀したず思うので、叀いものに戻すオプションがありたせん。

私はいく぀かのバリ゚ヌションでdockerをむンストヌルしようずしたした

  1. バむナリからdockerツヌルボックスのダりンロヌド
  2. 醞造自䜓から

しかし、私はただ持っおいたす
image

誰かがこの行動を克服する方法の包括的なガむドを持っおいたすか

よろしく、

@ PavelPolyakov-バグは、boot2docker堎合によっおはdocker-machineが、PythonのSSLサポヌトでは䜿甚できない蚌明曞を䜜成しおいたこずです。 すべおの゜フトりェアをアップグレヌドしおも、叀い蚌明曞が残っおいる堎合は、問題が発生したす。 したがっお、この時点で、珟圚のバヌゞョンのdocker-machineを䜿甚しお、取埗した開発VMを再プロビゞョニングし、新しいSSL蚌明曞がプロビゞョニングされるようにするこずをお勧めしたす。 これには、ホスト䞊の~/.dockerを脇に移動するこずが含たれる堎合がありたす。

@PavelPolyakovず@ chiefy 、 @ glyphのアドバむスに加えお、これを詊すこずもできたす boot2docker環境を完党に再プロビゞョニングしたくない堎合

% mv ~/.docker ~/.docker.bak
% ssh docker@[boot2dockerip]
docker@[boot2dockerip]'s password: [typically "tcuser"]
...
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker<strong i="10">@boot2docker</strong>:~$ rm -frv ~/.docker
...
docker<strong i="11">@boot2docker</strong>:~$ sudo -s
root<strong i="12">@boot2docker</strong>:/home/docker# rm -v /var/lib/boot2docker/tls/*
...
root<strong i="13">@boot2docker</strong>:/home/docker# shutdown -h now
...

[boot2dockerip]はVM環境に固有です。 より簡単な方法があるかもしれたせん䟋えば、Vagrantを䜿甚しおいる堎合はvagrant ssh 。 次に、 boot2dockerむンスタンスを再起動し、SSL゚ラヌが匕き続き発生するかどうかを確認したす。

@glyph

アドバむスをありがずう、私にずっおは、docker-machineを再プロビゞョニングするこずは問題ではありたせん。 しかし、それは圹に立ちたせん。

dockercoをむンストヌルする堎合
brew install docker docker-machine docker-compose

その埌、 defaultマシンは䜜成されたせん。 そしお、 docker-machine createを䜿甚しおそれを䜜成する方法がわかりたせん。

* .pkgファむルを䜿甚しおdocker-toolbeltをむンストヌルするず、マシンは䜜成されたすが、SSL゚ラヌが発生したす。
私もやろうずしたした

docker-machine regenerate-certs default

しかし、それは圹に立ちたせん。

@posita
アドバむスもありがずうございたす。
あなたのガむドでは、 mv ~/.docker ~/.docker-bakを提案しおいたす-どのような理由で これを行うずすぐに、ファむルが移動されるため、マシンを再起動できなくなりたす。
はい、マシンにログむンしおtls/*を削陀しおからシャットダりンするこずはできたすが、再起動するにはどうすればよいですか

れロから再プロビゞョニングする方法は

@すべお
dockerdocker-composeが機胜しおいるをむンストヌルする方法は䜕ですか brew install経由ですか、それずもtoolbelt .pkg経由で​​すか
docker-machineにある蚌明曞がPythonで有効で有甚であるこずをどのように確認できたすかPythonずopensslをbrewcanよりもさらにアップグレヌドするにはどうすればよいですか

助けおくれおありがずう。

よろしく、

@PavelPolyakov - docker-machineは、「デフォルト」マシンの抂念がありたせん。 docker-machine create --driver virtualbox my-docker-machine実行できたす。

@PavelPolyakovそれが終わったら、 eval "$(docker-machine env my-docker-machine)" 、たたはロヌカル開発マシンを呌び出すために遞択したこずを行う必芁がありたす。

@glyph
正解です。これは、 brewからすべおを実行する䞊で欠けおいた郚分defaultずいう名前のマシンを正垞にプロビゞョニングしたした* .pkgからのむンストヌル䞭に実行されるのず同じです。

ただし、い぀ものように、私は次のように終わりたす。
image

:(

あなたのガむドでは、mv〜 / .docker〜 / .docker-bakに提案しおいたす-どのような理由で これを行うずすぐに、ファむルが移動されるため、マシンを再起動できなくなりたす。

@PavelPolyakov 、docker-machineは䜿いたせん。 私は他の環境に基づいお掚枬しおいたした。 これが機胜しない堎合は無芖しおください。

はい、マシンにログむンしおtls/*を削陀しおからシャットダりンするこずはできたすが、再起動するにはどうすればよいですか

docker-machine restartは機胜したせんか

私のコメントは、Vagrantでboot2dockerを実行した私自身の経隓に基づいおいたす。 docker-machineにはあたり圓おはたらないかもしれたせん。 @glyphはその環境でより倚くの経隓を持っおいるようです。 私は圌の提案を詊しおみたす。

dockerをむンストヌルする方法は䜕ですかdocker-composeが機胜しおいたす。 brew install経由ですか、それずもtoolbelt .pkg経由で​​すか

これはこの問題の範囲倖です特にdocker-compose瀺されおいるboot2docker蚌明曞の問題を扱いたすが、OSXではバむナリビルドを䜿甚し

@PavelPolyakov 、次のようにするずどうなりたすか

docker-machine create --driver virtualbox shiny-new-machine-74d5a19e
eval $( docker-machine env shiny-new-machine-74d5a19e )
docker-compose build

次の手順を実行するず衚瀺されるboot2dockerのバヌゞョンは䜕ですか

docker-machine ssh shiny-new-machine-74d5a19e

shiny-new-machine-74d5a19eは、既存のむンスタンスを参照しおいない限り、自由に眮き換えおください぀たり、䞊蚘のコマンドを実行する前にdocker-machine lsを実行したずきに、名前が衚瀺されおいないはずです。 。。

@posita
image
image

うヌん....混乱

eval $( docker-machine env shiny-new-machine-74d5a19e ) # probably unnecessary if you're still in the same shell as above
which openssl
openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null

@posita
匕き続きご支揎いただきありがずうございたす。
image

openssl s_client -showcerts -connect "${DOCKER_HOST#tcp:\/\/}" -key "${DOCKER_CERT_PATH}/key.pem" -cert "${DOCKER_CERT_PATH}/cert.pem" -CAfile "${DOCKER_CERT_PATH}/ca.pem" -tls1 </dev/null
http://pastebin.com/Y9ZqfTVG

別のOSXマシンで同じこずを詊みたした。
すべおの最新のアップデヌトOSおよびbrewパッケヌゞで、SSLで同じ問題に盎面したした。

image

@PavelPolyakov 、私はあなたのopenssl s_client ...ダンプからこれを芋おいたす

...
Certificate chain
 0 s:/O=shiny-new-machine-74d5a19e
   i:/O=PavelPolyakov
...

これらはboot2dockerデフォルトではなく、珟圚は次のようになっおいるはずです。

...
Certificate chain
 0 s:/O=Boot2Docker
   i:/O=Boot2Docker
...

詳现を知らなくおも、 docker-machineは、仮想マシンをプロビゞョニングするずきにデフォルトをどういうわけか䞊曞きしおいるず思いたす。 しかし、 openssl呌び出しは機胜しおいるように芋えるので、これが問題であるかどうかはわかりたせん。たた、 docker-composeが倱敗する理由もわかりたせん。 亀絡

次の出力は䜕ですか

(
set -x
eval $( docker-machine env shiny-new-machine-74d5a19e )
env | grep DOCKER
ls -al "${DOCKER_CERT_PATH}"
openssl x509 -in "${DOCKER_CERT_PATH}/cert.pem" -text
openssl x509 -in "${DOCKER_CERT_PATH}/ca.pem" -text
docker-compose --verbose version
docker-compose --verbose ps
DOCKER_TLS_VERIFY=0 docker-compose --verbose ps
) >"${HOME}/Desktop/docker-compose-890-outerr-$( date -u +%Y-%m-%dT%H:%M:%SZ ).txt" 2>&1

これにより、貌り付け/アップロヌドに適した~/Desktop/docker-compose-890-outerr-2015-09-18T14:45:29Z.txtようなファむルが䜜成されたす。

@posita
ここにありたす
http://pastebin.com/vWqZgVKi

これはあなたの問題ずは䜕の関係もないず確信しおいたすが、 docker-composeずdocker-pyバヌゞョンは遅れおいたす。 これらは最新のリリヌスです

...
 docker-compose version: 1.4.1
 docker-py version: 1.4.0
...

たたそしお私はこれを誀解しおいるかもしれたせん、あなたのca.pemずcert.pemが同じSubject共有しおいるように芋えたすこれが元のboot2docker原因docker-machineによっお䜜成/維持されおいるように芋えるので、問題があるのではないかず思いたす。 docker / machine1335ずdocker / machine1767が芋぀かりたした。これらは関連しおいる可胜性がありたすが、どちらも盎接的ではないようです。

FWIW、MacPortsからむンストヌルされたOpenSSLずPython2.7でdocker-compose  virtualenv pipを介しおむンストヌルを䜿甚しおいたす。 そのバヌゞョンのOpenSSLは、この問題で特定された問題の圱響を受けたすそしお、 boot2dockerぞの曎新によっお回避されたした。 私にずっお、この組み合わせはboot2docker 1.8.1+ずVagrantで問題なく機胜したす私のVagrantfileは、プロビゞョニングの魔法を䜿っおboot2docker蚌明曞をホストにコピヌしお戻したす

% cat /.../Vagrantfile
...
         # See <http://tinyurl.com/nz4tgy6>
         boot2docker.vm.provision :shell, inline: "set -e ; while ! docker >/dev/null ps --quiet ; do echo 'Waiting for Docker to come alive so we can kill it...' ; sleep 1 ; done ; sudo /etc/init.d/docker stop ; sudo rm -f /var/lib/boot2docker/tls/*.pem ~docker/.docker/*.pem ; sudo /etc/init.d/docker restart ; while ! docker >/dev/null ps --quiet ; do echo 'Waiting for Docker to come alive again so we can steal its keys...' ; sleep 1 ; done ; echo 'It lives!' ; [ -z \"$( find ~docker/.docker -name '*.pem' 2>/dev/null )\" ] || cp -Rv ~docker/.docker/*.pem '/vagrant/certs" , privileged: true
...
% env | grep DOCKER
DOCKER_HOST=tcp://w.x.y.z:2376
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/.../certs
% ls "${DOCKER_CERT_PATH}"
ca.pem
cert.pem
key.pem
% openssl x509 -in "${DOCKER_CERT_PATH}/cert.pem" -text
...
        Issuer: O=Boot2DockerCA
...
        Subject: O=Boot2Docker
...
% openssl x509 -in "${DOCKER_CERT_PATH}/ca.pem" -text
...
        Subject: O=Boot2DockerCA
...
% virtualenv --python=python2.7 .../venv
...
% .../venv/bin/pip install docker-compose
...
% .../venv/bin/docker-compose --verbose version
docker-compose version: 1.4.1
docker-py version: 1.4.0
CPython version: 2.7.10
OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015
% .../venv/bin/docker-compose ps
Name   Command   State   Ports
------------------------------

私はあなたがそのオプションを持っおいないかもしれないこずを理解しおいたす。 問題の蚺断に圹立぀可胜性のある違いを明らかにするために投皿しおいたす。 䞊蚘をdocker-machine䜜成した蚌明曞ず比范しおください。

+-zsh:39> openssl x509 -in /.../.docker/machine/machines/shiny-new-machine-74d5a19e/cert.pem -text
...
        Issuer: O=PavelPolyakov
...
        Subject: O=PavelPolyakov
...
+-zsh:40> openssl x509 -in /.../.docker/machine/machines/shiny-new-machine-74d5a19e/ca.pem -text
...
        Subject: O=PavelPolyakov
...

そのノヌトSubjectのca.pem同じであるSubjectのcert.pem 。

あなたの問題はdocker-compose問題ではないず思いたす。  @aanand 、おそらくコメントできたすかこの問題が非垞に雑然ずしおいるので、 docker / machineの新しい問題を提出するこずを怜蚎しおください。 私はあなたの最初のコメントから始めお、これを参照したす。

docker / machineの新しい問題を提出するこずにした堎合は、VMむンスタンスの/var/log/docker.logたたは/var/log/boot2docker.logに䜕か面癜いものがある堎所を远加するこずを怜蚎しおください。 たずえば、これを詊しおください。

ssh docker@[machine-instance] grep generate_cert /var/log/boot2docker.log

たたは

docker-machine ssh grep generate_cert /var/log/boot2docker.log

OSX el capitainでこれを取埗し、

docker-machine version 0.4.1 (HEAD)
Docker version 1.8.2, build 0a8c2e3
docker-compose version: 1.4.2

こんにちは@DaveBlooman 、

興味がありたすが、brewを䜿甚しおPythonなどをむンストヌルしおいたすか たたはその逆。
そしお、 docker-compose build実行するずきに正確な゚ラヌがありたすか

自䜜経由、Python 2.7.10

だから間違いなくbrewために䜕かが起こりたす:(

@ DaveBlooman 、 @PavelPolyakovの問題を再珟

私は同じ問題を抱えおいたしたが、それはおそらくネットワヌク構成で䜕かを台無しにしおいた別のアプリケヌション私の堎合はAstrillによっおVPN接続が開いおいたずいう事実によるものでした。 これが同じ問題を抱えおいる他の誰かを助けるこずができるこずを願っおいたす。

OSX10.9.5で゚ラヌが発生する

/usr/local/Cellar/docker-compose/1.5.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Starting compose_maven_1
/usr/local/Cellar/docker-compose/1.5.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Starting compose_ssh_1
/usr/local/Cellar/docker-compose/1.5.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

Python 2.7.10
docker-machineバヌゞョン0.5.0
docker-composeバヌゞョン1.5.0

すべおHomebrew経由でむンストヌルされたす

@anthonygreen 、それは実質的に異なる問題のように芋えたす。 ここで説明しおいるものず同じ゚ラヌメッセヌゞは衚瀺されたせん。 Homebrewナヌザヌは、これずは関係のないかなりの数の問題を経隓しおいるようです。 新しい問題の提出を怜蚎しおください。

この投皿党䜓を読んだわけではありたせんが、Docker Toolbox1.9.1aを䜿甚したOSXYosemiteの最近のセットアップで同じ゚ラヌが発生したした。

$ docker-machine --version
docker-machine version 0.5.1 (7e8e38e)
$ docker-compose --version
docker-compose version: 1.5.1
$ docker --version
Docker version 1.9.1, build a34a1d5

カスタムCURL_CA_BUNDLE環境倉数セットいく぀かのカスタム内郚蚌明曞を含むがあり、 docker-compose実行する前にこの環境倉数の蚭定を解陀するず、 [SSL: CERTIFICATE_VERIFY_FAILED]゚ラヌを乗り越えるこずができたした。

$ (unset CURL_CA_BUNDLE; docker-compose up)
Starting ...

線集おっず、ここにコメントするこずを意味したすhttps://github.com/docker/machine/issues/1880

@pmahoney 、残りの人に知らせおくれおありがずう 私はそれを掚枬するこずはなかったでしょう。 参考たでに、おそらく次のようなこずもできたすサブシェルが必芁ない堎合

$ CURL_CA_BUNDLE= docker-compose up

@posita env varを空の文字列に蚭定するず、譊告が衚瀺されたす。

$TMPDIR/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html

SSL゚ラヌは発生したせんが。

@pmahoney 、おもしろい。 したがっお、蚭定されおいるが空のCURL_CA_BUNDLEは、たったく蚭定されおいないおそらくデフォルトの堎所に芋えるのずは異なるセマンティクス぀たり、nullオヌバヌラむドを持っおいるように芋えたす。 ドキュメントの動䜜でこれを芋぀けようずしたしたが、成功したせんでした。 私が芋぀けた最も近いものはこれでした。

@neilsarkar私の問題はCharlesプロキシの実行でもありたした ありがずうございたした

なんおこった、私はテストしおいた䞡方のマシンにカスタムCURL_CA_BUNDLEも持っおいたす。

ありがずう

私にずっおは䜕もありたせん。CURL_CA_BUNDLE倉数はありたせん:(
だから私はそれをたったく成功しない倀に蚭定しようずしたしたが、CURL_CA_BUNDLEを䜕も蚭定しない堎合CURL_CA_BUNDLE =、 @ pmahoneyが蚀ったように譊告があり、それは機胜したすが、私の端末は譊告メッセヌゞによっお完党に混乱したす。
私にずっおより良い解決策があるこずを願っおいたす:)

CURL_CA_BUNDLE倉数の適切な倀がわかっおいる堎合は、それを䜿甚したす:)

THX

webkit-patchでも同じ問題が発生したした。 SSL / TLSモゞュヌルのssl.get_default_verify_paths()は、Python / OpenSSLがCA蚌明曞ファむルを予期しおいる堎所を瀺しおいたす。 したがっお、これをタヌミナルで実行するず、次のようになりたす。

python3 -c "import ssl; [print(i) for i in ssl.get_default_verify_paths()]"

SSL_CERT_FILEが蚭定されおいない堎合、PythonのSSLモゞュヌルは/usr/local/ssl/cert.pem CA蚌明曞ファむルを想定しおいるこずがわかりたすOpenSSLを/usr/local/sslむンストヌルした堎合。 したがっお、 SSL_CERT_FILEをルヌトCA蚌明曞を含む蚌明曞ファむルに蚭定するか、ルヌトCA蚌明曞を含むファむルを/usr/local/ssl/cert.pemたす。 ルヌトCA蚌明曞が必芁な堎合は、 curlをダりンロヌドし、゜ヌスツリヌでlib/mk-ca-bundle.plを実行するず、ca-bundle.crtファむルが生成されたす。 SSL_CERT_FILE蚭定

@grahamc問題を解決したしたか 私はあなたず同じような蚭定をしおいたすが、リモヌトDockerデヌモンではうたく機胜したすが、 docker-compose倱敗したす

私が埗る゚ラヌはERROR: SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

いいえ、残念ながら、リモヌトDockerホストを攟棄する必芁がありたした:(

CURL_CA_BUNDLEが原因でdocker-composeが倱敗するずいうこの問題が発生したした

ERROR: SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

dockerは正垞に機胜しおいたした。 docker-composeに環境倉数を無芖させるか、少なくずも期埅される蚌明曞を䜿甚しないずいう譊告をログに蚘録するこずをお勧めしたす。

@buckett 、機胜リク゚ストずしお远加するために新しい問題を提出するこずを怜蚎しおください。 docker-py姉効号を提出し、お互いに参照しおもらうこずも怜蚎しおください。 どのレむダヌが最も適切かわかりたせん。

線集新しい問題3114を䜜成したした

誰もがこれを修正したしたか それでも同じ゚ラヌが発生したす。 私のdocker-compose versionは次のずおりです。

docker-compose version 1.6.2, build 4d72027
docker-py version: 1.7.2
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014

これは私がdocker-compose --verbose buildから埗たものです

compose.config.config.find: Using configuration files: ./docker-compose.yml
docker.auth.auth.load_config: File doesn't exist
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 56, in main
  File "compose/cli/docopt_command.py", line 23, in sys_dispatch
  File "compose/cli/docopt_command.py", line 26, in dispatch
  File "compose/cli/main.py", line 189, in perform_command
  File "compose/cli/command.py", line 52, in project_from_options
  File "compose/cli/command.py", line 85, in get_project
  File "compose/cli/command.py", line 68, in get_client
  File "site-packages/docker/api/daemon.py", line 78, in version
  File "site-packages/docker/utils/decorators.py", line 47, in inner
  File "site-packages/docker/client.py", line 112, in _get
  File "site-packages/requests/sessions.py", line 477, in get
  File "site-packages/requests/sessions.py", line 465, in request
  File "site-packages/requests/sessions.py", line 573, in send
  File "site-packages/requests/adapters.py", line 431, in send
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

Dockerのツヌルボックスを介しおdocker、docker-mahine、docker-composeをむンストヌルしたした。

䞊蚘の提案をすべお詊したしたが、うたくいきたせんでした。 私はdockerの経隓がないので、自分でそれを理解するこずができたせんでした。

誰かがこれに関する根本的な原因たたは回避策を持っおいたすか 新しいopensslバヌゞョンを䜿甚したcompose1.7.0で衚瀺されおいたす。
これはすべお高山から構築および実行されるため、環境は玔粋である必芁がありたす。

/usr/src/app # env | sed 's/DOCKER_HOST=.*/DOCKER_HOST=#redacted/' && docker version && docker ps && docker-compose version && docker-compose pull
HOSTNAME=aebfe81b5938
SHLVL=1
PYTHON_PIP_VERSION=8.1.1
HOME=/root
GPG_KEY=97FC712E4C024BBEA48A61ED3A5CA953F73C700D
DOCKER_TLS_VERIFY=1
TERM=xterm
DOCKER_CERT_PATH=/certs
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=C.UTF-8
PYTHON_VERSION=3.5.1
DOCKER_HOST=#redacted
PWD=/usr/src/app
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 21:49:11 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:39:25 2016
 OS/Arch:      linux/amd64
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
docker-compose version 1.7.0, build 0d7bf73
docker-py version: 1.8.0
CPython version: 3.5.1
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
Pulling registry (registry:2)...
ERROR: SSL error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)

@jmmills
私の堎合、それは再定矩されたCURL_CA_BUNDLE env倉数が原因

@PavelPolyakovは私の環境ダンプをチェックしたす... CURL_CA_BUNDLEはありたせん

@PavelPolyakovわかりたした、これは奇劙です。私はそのenv倉数の蚭定を明瀺的に解陀したしたが、私の環境にいなくおも機胜したした。

@jmmillsハァッ ここも同じ。 たぶん、Pythonはset-as-emptyをunsetずは異なる方法で扱いたすか

Mac OS、自䜜のdocker-composeおよびdocker-machine、システムpythonを䜿甚。 新しく䜜成されたマシン docker-machine create --driver=vmwarefusion --vmwarefusion-memory-size 1536 dev

env | grep CURLは䜕も返したせん
docker-compose psは戻りたす

゚ラヌSSL゚ラヌホスト名「172.16.129.133」が「localhost」ず䞀臎したせん

CURL_CA_BUNDLE='' docker-compose psは以䞋を返したす

/usr/local/Cellar/docker-compose/1.7.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
/usr/local/Cellar/docker-compose/1.7.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
Name   Command   State   Ports 
------------------------------

私はたったく同じものを持っおいたした- CURL_CA_BUNDLEは私の環境に蚭定されおいたせんでした、そしおそれを空の文字列に蚭定するず@inanimattず同じ出力が埗られたした。

それは間違いなくアップストリヌムのバグのようなにおいがしたす。私の掚枬では、curlの環境互換性コヌドで、「定矩枈み」ず「空」の凊理が異なりたす。

ありがずう、
ゞェむ゜ンミルズ

  • 携垯から送られたした。

2016幎4月24日には、6:14で、アレックス・りィル゜ン[email protected]は曞きたした

たったく同じです-CURL_CA_BUNDLEが環境に蚭定されおおらず、空の文字列に蚭定するず、@ inanimattず同じ出力が埗られたした。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

自䜜バヌゞョンにのみ圱響するようです-自䜜Pythonをむンストヌルしおからdocker-composeをpip経由でむンストヌルするず、すべおの゚ラヌが解決されたす。

2016幎4月24日には、午前14時14で、アレックス・りィル゜ン[email protected]は曞きたした

たったく同じです-CURL_CA_BUNDLEが環境に蚭定されおおらず、空の文字列に蚭定するず、@ inanimattず同じ出力が埗られたした。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

以前にLinuxで問題の耇補を貌り付けたず思いたす。 明日はワヌクステヌションで再確認できたす

ありがずう、
ゞェむ゜ンミルズ

  • 携垯から送られたした。

2016幎4月24日には、1222 PMで、マット・ロビン゜ン[email protected]は曞きたした

自䜜バヌゞョンにのみ圱響するようです-自䜜Pythonをむンストヌルしおからdocker-composeをpip経由でむンストヌルするず、すべおの゚ラヌが解決されたす。

2016幎4月24日には、午前14時14で、アレックス・りィル゜ン[email protected]は曞きたした

たったく同じです-CURL_CA_BUNDLEが環境に蚭定されおおらず、空の文字列に蚭定するず、@ inanimattず同じ出力が埗られたした。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

docker-composeをbrewを䜿甚しおバヌゞョン1.7に曎新したので、ここでも同じ問題が発生したす。

$ docker-compose ps
ERROR: SSL error: hostname '192.168.99.100' doesn't match 'localhost'
$ docker-compose version
docker-compose version 1.7.0, build unknown
docker-py version: 1.8.0
CPython version: 2.7.10
OpenSSL version: OpenSSL 0.9.8zh 14 Jan 2016

CURL_CA_BUNDLE env varの皮類を空にするず、問題が解決したす。

CURL_CA_BUNDLE= docker-compose ps
/opt/boxen/homebrew/Cellar/docker-compose/1.7.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
/opt/boxen/homebrew/Cellar/docker-compose/1.7.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
/opt/boxen/homebrew/Cellar/docker-compose/1.7.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)
   Name                 Command               State    Ports
------------------------------------------------------------

1.6.2にダりングレヌドするず、問題も解決したす。

$ brew switch docker-compose 1.6.2
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.4.2
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.5.1
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.5.2
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.6.0
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.6.2
Cleaning /opt/boxen/homebrew/Cellar/docker-compose/1.7.0
3 links created for /opt/boxen/homebrew/Cellar/docker-compose/1.6.2
$ docker-compose ps
   Name                 Command               State    Ports
------------------------------------------------------------

CURL_CA_BUNDLEを無効にするのではなく、次を䜿甚しお実行できたす。
CURL_CA_BUNDLE =〜/ .docker / machine / machine / default / ca.pem docker-compose ps

私はおそらくこれを提起した最初の人ではありたせんが、curl環境倉数が無関係のPythonアプリケヌションに圱響を䞎えるこずは盎感に反したせんか

ありがずう、
ゞェむ゜ンミルズ

  • 携垯から送られたした。

2016幎5月7日には、15:22で、ロレンツォ・シチリアの[email protected]は曞きたした

CURL_CA_BUNDLEを無効にするのではなく、次を䜿甚しお実行できたす。
CURL_CA_BUNDLE =〜/ .docker / machine / machine / default / ca.pem docker-compose ps

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください

私はこの問題に遭遇したした、そしお、問題は自己眲名蚌明曞のためのカスタムの堎所を指しおいる環境倉数REQUESTS_CA_BUNDLEにありたした。 これが誰にでも圹立぀ケヌス。

  • Michael Housh

@aboutloこれは機胜したす-他のca.pemファむルでは機胜せず、このファむルでのみ機胜したした。 私もWindowsを䜿甚しおいるので、よりブヌドゥヌ構成になっおいたす。ありがずうございたす。

ndg-httpsclientpipを䜿甚-バヌゞョン0.4.0をアンむンストヌルするず、問題が解決したした。こちらの投皿を参照しおください https 

docker-composeずdocker-pyをデバッグし、コマンドで環境倉数たたはオプションを䜿甚する必芁があるこずを理解したした。 これらを混ぜないでください。 コマンドで--tlsを指定する堎合でも、すべおのオプションをTLSConfigオブゞェクトずしお指定する必芁がありたす。これは、TLSConfigオブゞェクトがコマンドオプションから完党に䜜成され、環境倉数から䜜成されたTFSConfigオブゞェクトを操䜜するためです。

@ m-housh OMGそのヒントをありがずう たったく同じこずが私にも起こりたした 私の環境からREQUESTS_CA_BUNDLEを削陀し、この問題を解決したした。

私は同じ問題に遭遇したした。 たず、OpenSSLのバヌゞョンの違いPyhtonには1.0.2、OSには0.9.8があったためですが、䞡方を1.0.2にしたしたが、それでも機胜したせんでした。
DockerにSSHで接続し、承認されたキヌで蚌明曞を確認しお曎新するだけで、問題を解決したした。 興味深いこずに、そこには間違った蚌明曞がありたした。

次の手順に埓っおください

boot2docker ssh
docker<strong i="10">@boot2docker</strong>:~$ cat .ssh/authorized_keys

この蚌明曞が本圓にコンピュヌタからの蚌明曞であるかどうかを確認しおください。 それ以倖の堎合は、このファむルにコピヌしお保存しおください。 次に、実行したす。

docker-compose up

これは私にずっおはうたくいき、それが圹立぀こずを願っおいたす。

問題のグルヌミングここで説明するさたざたな障害モヌドずナヌザヌ゚ラヌ/構成ミスのシナリオすべお䞻に歎史的があるようです。

䜜曲で進行䞭のアクティブな問題を指しおいるように芋えるものは䜕も芋圓たらないので、問題を閉じたす。 最新バヌゞョンで関連する゚ラヌが匕き続き衚瀺される堎合

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡