web-dev-qa-db-ja.com

WindowsのBoot2Dockerで証明書エラーを無視する方法

私は、virtualboxを介してWindows上でboot2docker1.4.1を実行しています。私はMITMがhttps証明書を使用するプロキシの背後にいます。 /var/lib/boot2docker/profileに次の行を追加して、プロキシを構成しました。

export HTTP_PROXY=<proxyhost>:80
export HTTPS_PROXY=<proxyhost>:80
DOCKER_TLS=no
EXTRA_ARGS="--insecure-registry index.docker.io"

ただし、docker@boot2docker:~$ docker run hello-worldを実行すると

Unable to find image 'hello-world:latest' locally
Pulling repository hello-world
FATA[0006] Get https://index.docker.io/v1/repositories/library/hello-world/images
: x509: certificate signed by unknown authority

証明書エラーを無視する正しい方法を見つけるのを手伝ってください。ありがとう!

11
RaGe

編集新しいDockerは Windows 10の特定のフレーバー でのみ機能するようです。それでもWindows7を使い続ける場合は、最新バージョンのdocker-toolboxをインストールしたときに「証明書チェーン内の自己署名証明書」エラーを修正するために実行する必要のある手順を反映するように以下を更新しました( Docker 1.11.2 )。


最後に、ここでの回答に従って、これをWindows 7で機能させました: https://github.com/boot2docker/boot2docker/issues/347

openssl s_client -showcerts を実行して、これが問題であることを確認します。

docker@boot2docker:~$ openssl s_client -showcerts -CApath . -connect index.docker.io:443

(編集:-showcertsから32を削除し、ホスト名を修正しました)

証明書チェーンでは、プロキシがそれ自体を挿入し、検証が次のようなエラーを返すことがわかります。

Verify return code: 19 (self signed certificate in certificate chain)

同じ問題が発生した場合は、以下の手順を試してください。

  1. まず、必要な証明書を保存します。 Firefoxで使用する手順は次のようになります https://stackoverflow.com/a/6966818/1981358 (ChromeおよびIEも証明書のエクスポートを使用して機能するはずですウィザード;注:Windowsでは、PEM証明書のエンコードはBase-64エンコードX.509(.CER)と呼ばれます):
    • Firefoxでは、 https://hub.docker.com/ にアクセスします。
    • アドレスバーの鍵のアイコンをクリックして、証明書を表示します
    • 「詳細情報」->「セキュリティ」->「証明書の表示」->「詳細」をクリックします
    • 最上位ノードから始まる階層内の各ノードを選択し、[エクスポート]および[保存]をクリックします(X.509証明書(PEM)形式を選択します)
    • 上記のファイルをローカルドライブのどこかに保存し、拡張子を.pemに変更して、ユーザーフォルダー(またはsshからアクセスできるその他の場所)に移動します。
  2. 証明書を保持するフォルダーを作成します:docker@boot2docker:~$ Sudo mkdir /var/lib/boot2docker/certs/
  3. 証明書ファイルをその場所にコピーします:docker@boot2docker:~$ Sudo cp /c/Users/<username>/<folder>/<proxy-cert>.pem /var/lib/boot2docker/certs/
  4. ファイルを作成します/var/lib/boot2docker/bootlocal.shそして https://Gist.github.com/irgeek/afb2e05775fff532f96 からのソースを含めます(私はNotepad ++を使用してWindowsでファイルを作成し、上記の手順と同様に正しい場所にコピーしました)
  5. Sshを終了して再起動します:C:\>docker-machine restart
  6. シェルを開くdocker-machine sshそして変更が機能したことを確認します:docker run hello-world

次のようなものを含む出力が表示されます。

Hello from Docker.
This message shows that your installation appears to be working correctly.
21
peater

Windows 10Docker for Windowsがあり、 「x509:不明な機関によって署名された証明書」エラーが発生した場合は、次のことを試すことができます。

  1. Docker forWindowsを実行します。
  2. しばらくすると、Windowsの通知領域(右下)にDockerアイコンが表示されます enter image description here
  3. アイコンを右クリックして、「設定...」を選択します。
  4. 設定ウィンドウが開きます。左側の「Dockerデーモン」を選択します。
  5. JSON形式で構成を表示するテキストボックスの「insecure-registries」コレクションにプライベートレジストリを追加します。次に、「適用」をクリックします。 enter image description here
4
Paulo Merson