使用 SSL 的 Nexus Repository Manager 3 浏览器无法访问或 Docker

Nexus Repository Manager 3 using SSL Unreachable by browsers or Docker

我不是 java 人,但我们将 Nexus 用于我们的 NPM 和 Nuget 包,并想开始使用它来托管 Docker 图像,但我似乎无法使用 SSL他们的向导。我使用的是 3.14 版

我已经生成了密钥库并验证了它可以使用:

keytool -printcert -sslserver localhost:8444 -v

我的 nexus.properties 文件包含

ssl.etc=${karaf.data}/etc/ssl
application-port-ssl=8444
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml,${jetty.etc}/jetty-https.xml

我已尝试更新 local_policy.jar 和 US_export_policy.jar,尝试更新 JRE,但我仍然只得到

ERR_SSL_VERSION_OR_CIPHER_MISMATCH 来自 chrome 当我尝试浏览器或 TLS 握手失败并 Docker 尝试登录时。

由于您要生成密钥库,因此请务必遵循以下一般建议。

  • 使用 AES 或 RSA(不是 DSA 或 DES)作为您的密钥算法
  • 使用 2048 位(或更大。选择 4096)
  • 使用强签名算法,例如 SHA256 或 SHA512(不是 SHA、SHA1、MD5)
  • 密钥库类型应为 PKCS12 或 JKS(对于 Java 密钥库)

如果您使用 DSA 或 DES,您将无法连接。 如果您使用太低的位大小,您将无法连接。 如果你使用了一个糟糕的签名算法,你将无法连接。

有关使用 keytoolopenssl 生成密钥库的示例,请参阅 https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html

我发现了问题。这就是我生成密钥库的方式。我使用的是从 windows 导出的 .pfx 证书,并试图在导入到密钥库之前将其拆分成单独的部分。

一旦我尝试导入也包含私钥的 pfx 证书,它就成功了。自从测试

后它似乎就可以工作了

keytool -printcert -sslserver localhost:8444 -v

正在返回证书错误。