2016-09-16 67 views
0

我是新來的docker,並試圖將一些圖像推送到我使用自簽名證書製作的docker registry私有Docker註冊表錯誤

搬運工推

<IP-Address>:5000/hello-world 

但它給以下錯誤:

推是指倉庫

[<IP-Address>:5000/hello-world] 
Get https://<IP-Address>:5000/v1/_ping: x509: 

<IP-Address> because it doesn't contain any IP SANs 

無法驗證證書,如果我使用d omain代替IP地址, 搬運工推

<domain-name.com>:5000/hello-world 

它顯示錯誤:

推送是指由不知名權威

上午我簽署了一份倉庫

[<domain-name.com>:5000/hello-world] 
Get https://<domain-name.com>:5000/v1/_ping: x509: 

證書遺漏了什麼?如何解決這個錯誤?

回答

0

見回答here一步一步的指導,建立私有註冊。希望這會有所幫助。

+0

它解決了我的問題,並且工作正常,但現在我又遇到了同樣的問題'由未知權威機構簽名的證書',我無法推或拉 – saurg

+0

請檢查註冊表服務器上可用的證書文件和客戶機上的/etc/docker/certs.d/ << DockerRegistryServerHostname >>:<< DockerRegistryPort >>/ca.crt'文件夾。只有當證書沒有被正確複製時,這個錯誤纔會出現。這個問題也可以如果用戶沒有權限訪問ca.crt文件,則會發生。 –

+0

此外,請確保您使用命令「docker run -d -p 5000:5000 --restart = always --name registry」\ -v'pwd'/certs:/ certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE =/certs啓動Docker註冊表/domain.crt \ -e REGISTRY_HTTP_TLS_KEY =/certs/domain.key \ registry:2'。確保爲REGISTRY_HTTP_TLS_CERTIFICATE和REGISTRY_HTTP_TLS_KEY參數指定的路徑正確 –

0

您必須將證書添加到可信證書列表中。

這是你如何能做到這在Linux中:https://unix.stackexchange.com/questions/90450/adding-a-self-signed-certificate-to-the-trusted-list

對於其他操作系統,只是搜索。

要將IP添加到您的證書中,請參閱本教程https://jamielinux.com/docs/openssl-certificate-authority/這太棒了!

您將不得不爲證書添加一些替代名稱。

[alt_names] 
DNS.1 = alternative.domain-name.com 
IP.1 = 192.168.0.108 
+0

我確實添加了'alt_names'。我正在關注https://deis.com/blog/2016/secure-docker-with-tls/。你可以看看我是否錯過任何東西。 – saurg

+0

您必須將cert.pem添加到操作系統信任庫中,或者像在教程中一樣啓動docker守護進程時明確聲明它。 '/tlsverify --tlscacert =/etc/docker/ssl/ca.pem --tlscert =/etc/docker/ssl/cert.pem --tlskey =/etc/docker/ssl/key.pem' – VolkerK

+0

@ VolkerK我有'sample.keystore','sample.csr'和'sample.cer'文件。如何保護docker註冊表與這些?如何從這些獲取'sample.crt'和'sample.key'文件? – saurg