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

标签 maven ssl nginx docker sonatype

我按照 Docker 的建议为我的 docker 客户端和守护进程生成了证书:https://docs.docker.com/engine/security/https/#create-a-ca-server-and-client-keys-with-openssl

但是...我正在使用 Sonatype Nexus 3 作为我的私有(private) 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;

这 2 个证书是使用 Docker 文档(上面的链接)生成的证书。

然后我可以使用 keytool 将我的 server.cert 添加到我的 keystore ,但是我怎样才能让 Maven 和 Docker 都信任该证书?我的意思是,没有人信任我的 CA,因为我自己生成了它...

最佳答案

我使用的是基于 Debian 的操作系统,我就是这样做的。 在您的客户端和服务器上,您只需获取证书文件并将其添加到 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 

希望对你有帮助

关于maven - 在带有 HTTPS 的 NGinx 后面使用 Maven 和 Docker + Nexus 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443523/

相关文章:

java - 如何在测试范围内使用 m2e (Eclipse/Maven) 运行具有测试依赖项的命令行程序?

c - 如何使用嵌入式 Mongoose 实现 SSL

nginx - 如何使用 Nginx 通过文件 RIFF header 设置 MIME?

node.js - Socket.IO - io 未定义(在不同域上失败)

ssl - 无法使用 https 访问网站

java - Artifact 解析的 m2eclipse 问题 - 建议 Eclipse 的另一个 Maven 插件?

java - 创建的pom.xml在哪里

maven - 具有 Artifactory 的 3rd 方传递依赖项的 Android 库

ssl - 更新 Let's Encrypt SSL 证书 - Plesk

iPad:服务器需要客户端证书