使用带有HTTPS的NGinx后面的Maven和Docker + Nexus 3

时间:2016-05-25 17:04:12

标签: maven ssl nginx docker sonatype

我根据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,因为我自己生成了它......

1 个答案:

答案 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 

希望这会有所帮助