Ssl

私有 Docker Registry(帶有 TLS 證書)

  • October 19, 2016

我正在嘗試根據https://docs.docker.com/registry/deploying/#running-a-domain-registry的文件設置一個私有 docker 系統資料庫。

我使用 StartSSL 作為證書頒發者,下載了他們的中間 crt 並將它們與我的客戶端證書結合起來:

cd certs    
cat sca.server3.crt ca.crt client.pem  > client.crt

啟動系統資料庫後

docker run --rm -p 5000:5000 --name registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/client.crt -e REGISTRY_HTTP_TLS_KEY=/certs/private.key registry:2

系統資料庫抱怨私鑰/公鑰不匹配。但是,相同的證書 + 私鑰在其他一些 Apache 站點中也可以使用。在將中間 crt 添加到 client.crt 之前,我沒有收到該錯誤

time="2016-07-18T11:34:19Z" level=fatal msg="crypto/tls: private key does not match public key"

由於系統資料庫在 Intranet(不是公共 Internet)中執行,我不想設置 apache/nginx 只是為了充當代理。

旁注:我正在使用 Docker Mac(Docker 版本 1.12.0-rc4,建構 e4a0dbc,實驗性)。

我記得如何組合證書的順序很重要。

嘗試自下而上的方法:

cat domain.crt intermediate-certificates.pem ca.pem > chained-domain.crt

引用自:https://serverfault.com/questions/790503