我按照docker的建议为我的Docker客户端和守护程序生成了证书:https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl
但是..。我使用Sonatype Nexus 3作为我的私有docker注册表。
我有一个额部NGinX。
我希望使用自签名证书设置NGinx,以便能够使用Nexus作为注册表。
基本上,我为NGinx做了这样的设置:
ssl_certificate /home/AAA/certificates/adgroupe.priv/server-cert.pem;
ssl_certificate_key /home/AAA/certificates/adgroupe.priv/server-key.pem;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
这两个证书是使用Docker文档生成的证书(上面的链接)。
然后我可以使用keytool将我的server.cert添加到我的密钥库中,但是我如何才能让Maven和Docker都信任那个证书呢?我的意思是,没有人相信我的CA,因为它是我自己生成的。
发布于 2016-12-01 17:01:44
我使用的是基于Debian的操作系统,我就是这样做的。在您的客户端和服务器上,您只需获取cert文件并将其添加到ca证书。
root@test:~/certs mkdir /usr/share/ca-certificates/myRegistry.example.com
root@test:~/certs cp certificate.crt /usr/share/ca-certificates/myRegistry.example.com/
root@test:~/certs echo "myRegistry.example.com/certificate.crt" >> /etc/ca-certificates.conf
root@test:~/certs update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
# restart docker to refresh trusted CA
root@test:~/certs systemctl restart docker
你将只能使用你给它的通用名称访问(对我来说是):myRegistry.example.com。因为我在创建证书时指定了它
Common Name (e.g. server FQDN or YOUR name) []:myRegistry.example.com
希望这能有所帮助
https://stackoverflow.com/questions/37443523
复制相似问题