Let’s Encrypt発行の証明書を使用しているプライベートdocker registryを使う

標準

docker login registry.example.com:5000 で以下のような証明書エラーが出る人向け。

Error response from daemon: Get https://registry.example.com:5000/v2/: x509: certificate signed by unknown authority

Docker for Mac

Step 1. Chain of Trust – Let’s Encrypt – Free SSL/TLS Certificates から次の中間証明書を取得

  • Let’s Encrypt Authority X3 (IdenTrust cross-signed)

証明書のリンク先は拡張子が .txt となっているので、拡張子 .pem に変更して保存する。

Step 2. キーチェーンアクセス.appを開き、上記証明書を追加する(保存した証明書ダブルクリックから追加してもよい)

Step 3. キーチェーンアクセス内で「ISRG Root X1」を検索し、存在しなければ以下の証明書も Chain of Trust – Let’s Encrypt から取得して、Step1,2と同様にキーチェーンに追加する。

  • ISRG Root X1 (self-signed)

Docker machine

Step 1. docker-machine に ssh 接続

dokcer-machine ssh {machine_name}

Step 2. 証明書格納用ディレクトリ作成

sudo mkdir -p /etc/docker/certs.d/{registry.example.com:5000}

{registry.example.com:5000}の部分は、自身のプライベートregistryのホスト名とポート番号に置き換える

Step 3. 中間証明書を取得

Let’s Encrypt から次の中間証明書を取得して配置する

  • ISRG Root X1 (self-signed)
  • Let’s Encrypt Authority X3 (IdenTrust cross-signed)
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt > /etc/docker/certs.d/{registry.example.com:5000}/ca.crt
curl https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt >> /etc/docker/certs.d/{registry.example.com:5000}/ca.crt

{registry.example.com:5000}の部分は、自身のプライベートregistryのホスト名とポート番号に置き換える

参考

コメントを残す

Page optimized by WP Minify WordPress Plugin