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のホスト名とポート番号に置き換える
参考