2016-01-09 11 views
5

Letsencrypt証明書を使用してドッカーレジストリの設定します私のサーバー:は、ここで説明したように、私は、ドメインのレジストリを設定してい

docker run -d -p 5000:5000 --restart=always --name registry \ 
    -v `pwd`/certs:/certs \ 
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ 
    -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ 
    registry:2 

私はドッキングウィンドウを開始し、私はletsencrypt(https://letsencrypt.org/)を用いて得られた証明書を指摘してきました。

https://docker.mydomain.com:5000/v2/にアクセスすると、緑色のロック(成功した安全なページ要求)を持つページが{{}}で表示されます。

しかし、私は、私は、レジストリのドッキングウィンドウにエラーが表示され、別のサーバーからdocker login docker.mydomain.com:5000をしようとすると:

TLS handshake error from xxx.xxx.xxx.xxx:51773: remote error: bad certificate 

私は、証明書を設定する際に、いくつかの異なるバリエーションを試してみました、とのようなエラーを得ています:

remote error: unknown certificate authority 

私は何をしないのですか?

答えて

4

ドッカーシームはSNIをサポートしていませんしますhttps://github.com/docker/docker/issues/9969

更新:ドッカーは今SNIをサポートする必要があります。

それは平均だ、TLSトランザクション中にサーバーに接続するとき、ドッキングウィンドウのクライアントは、ドメイン名を指定していないので、あなたのサーバはデフォルトの証明書を示しています。

解決策は、サーバーのデフォルト証明書をドッカードメインに有効な証明書に変更することができます。

このサイトは、SNIをサポートしているブラウザでのみ動作します。

(サブ)ドメインがSNI対応ではないクライアントで動作するかどうかを確認するには、ssllabs.com/ssltestを使用できます。「このサイトはSNIサポートのあるブラウザでのみ動作します。それは動作します。

+0

私のサーバーはwww.mydomain.com上でSSLを実行しているので、私はその証明書をポイントし、[www.mydomain.com:5000のように、別のポートにドッキングウィンドウを設定する必要がありますか? – Oli

+0

それはうまくいくはずです。あなたはそれを確認できますか? – Tom

+0

これでうまくいきましたが、あなたのリンクとコメントによれば、サブドメインも同様に機能するはずですか?とにかくお返事いただきありがとうございます。 – Oli

関連する問題