我根据Docker建议为我的docker客户端和deamon生成了证书:https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl
但是......我使用Sonatype Nexus 3作为我的私人码头注册表。
我有一个正面的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;
2个证书是使用Docker文档生成的证书(上面的链接)。
然后我可以将keytool我的server.cert添加到我的密钥库中,但是如何让Maven和Docker都信任该证书?我的意思是,没有人相信我的CA,因为我自己生成了它......
答案 0 :(得分:0)
我使用的是基于Debian的操作系统,我这样做了。 在您的客户端和服务器上,您只需要获取证书文件并将其添加到ca-certificates。
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
希望这会有所帮助