我不是 Java 专家,但我们将 Nexus 用于我们的 NPM 和 Nuget 程序包,并想开始使用它来托管 Docker 镜像,但我似乎无法使用他们的指南使 SSL 工作。我使用的是 3.14 版本
我已经生成了 keystore 并验证了它可以使用:
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,但我还是得到了
当我尝试使用浏览器或 Docker 尝试登录时 TLS 握手失败时,来自 chrome 的 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。
最佳答案
由于您要生成 keystore ,请确保您使用以下一般建议。
- 使用 AES 或 RSA(不是 DSA 或 DES)作为您的 key 算法
- 使用 2048 位(或更大。选择 4096)
- 使用强签名算法,例如 SHA256 或 SHA512(不是 SHA、SHA1、MD5)
- Keystore 类型应该是 PKCS12 或 JKS(对于 Java KeyStore)
如果您使用 DSA 或 DES,您将无法连接。 如果您使用太低的位大小,您将无法连接。 如果你使用了糟糕的签名算法,你将无法连接。
参见 https://www.eclipse.org/jetty/documentation/current/configuring-ssl.html有关使用 keytool
或 openssl
生成 keystore 的示例。
关于java - 浏览器或 Docker 无法访问使用 SSL 的 Nexus Repository Manager 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53183851/