在 Maven 构建中使用小 dh 密钥信任存储库
Trust repository with small dh key in maven build
在我新设置的 CentOS 8 VM 中使用 maven 构建我的项目时,当 maven 尝试从我们的内部联系下载依赖项时,我收到以下错误:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.120 s
[INFO] Finished at: 2020-03-25T17:43:34+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project myproject: Could not resolve dependencies for project our.domain:myproject:jar:1.5.0: Failed to collect dependencies at our.domain.internal:internal-commons:jar:0.12.3: Failed to read artifact descriptor for our.domain.internal:internal-commons:jar:0.12.3: Could not transfer artifact our.domain.internal:internal-commons:pom:0.12.3 from/to nexus-proxy (https://nexus.our.domain/repository/maven-public/): DH ServerKeyExchange does not comply to algorithm constraints -> [Help 1]
当我尝试阅读该 nexus 上的任何网页时也会出现此问题:
[root@localhost Daisy]# curl https://nexus.our.domain
curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
我尝试使用以下方法手动将密钥添加到我的 known_hosts 文件中:
ssh-keyscan -p 443 nexus.our.domain >> ~/.ssh/known_hosts
但我 returns 没有任何控制台输出,也没有对文件进行更改。 运行
ssh-keyscan -p 443 nexus.our.domain
也完全没有输出。
我已将此问题报告给管理我们关系的内部团队。
我仍然会感谢任何强制我的 VM 接受我们的关系密钥的解决方案,这样我就不必等到密钥被交换了。我可以在客户端 (VM) 端的任何级别(Maven、https、ssl 或任何更低级别)自由处理此问题。
使用的版本:
CentOS: CentOS Linux 8.1.1911 版(核心版)
Maven:
[root@localhost Daisy]# mvn --version
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 11.0.5, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-147.5.1.el8_1.x86_64", arch: "amd64", family: "unix"
SSH:OpenSSH_8.0p1,OpenSSL 1.1.1c FIPS 2019 年 5 月 28 日
更改 /etc/crypto-policies/back-ends/opensslcnf.config
中的第一行:
- CipherString = @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
+ CipherString = @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
(将 SECLEVEL=2 更改为 SECLEVEL=1)
对于 运行 的 Maven 构建,我还必须更改 jvm 设置:
请记住,这只是一种解决方法。该设置是安全设置,通常不应更改。
在我新设置的 CentOS 8 VM 中使用 maven 构建我的项目时,当 maven 尝试从我们的内部联系下载依赖项时,我收到以下错误:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.120 s
[INFO] Finished at: 2020-03-25T17:43:34+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project myproject: Could not resolve dependencies for project our.domain:myproject:jar:1.5.0: Failed to collect dependencies at our.domain.internal:internal-commons:jar:0.12.3: Failed to read artifact descriptor for our.domain.internal:internal-commons:jar:0.12.3: Could not transfer artifact our.domain.internal:internal-commons:pom:0.12.3 from/to nexus-proxy (https://nexus.our.domain/repository/maven-public/): DH ServerKeyExchange does not comply to algorithm constraints -> [Help 1]
当我尝试阅读该 nexus 上的任何网页时也会出现此问题:
[root@localhost Daisy]# curl https://nexus.our.domain
curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small
我尝试使用以下方法手动将密钥添加到我的 known_hosts 文件中:
ssh-keyscan -p 443 nexus.our.domain >> ~/.ssh/known_hosts
但我 returns 没有任何控制台输出,也没有对文件进行更改。 运行
ssh-keyscan -p 443 nexus.our.domain
也完全没有输出。
我已将此问题报告给管理我们关系的内部团队。
我仍然会感谢任何强制我的 VM 接受我们的关系密钥的解决方案,这样我就不必等到密钥被交换了。我可以在客户端 (VM) 端的任何级别(Maven、https、ssl 或任何更低级别)自由处理此问题。
使用的版本:
CentOS: CentOS Linux 8.1.1911 版(核心版)
Maven:
[root@localhost Daisy]# mvn --version
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 11.0.5, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-11.0.5.10-2.el8_1.x86_64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-147.5.1.el8_1.x86_64", arch: "amd64", family: "unix"
SSH:OpenSSH_8.0p1,OpenSSL 1.1.1c FIPS 2019 年 5 月 28 日
更改 /etc/crypto-policies/back-ends/opensslcnf.config
中的第一行:
- CipherString = @SECLEVEL=2:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
+ CipherString = @SECLEVEL=1:kEECDH:kRSA:kEDH:kPSK:kDHEPSK:kECDHEPSK:-aDSS:-3DES:!DES:!RC4:!RC2:!IDEA:-SEED:!eNULL:!aNULL:!MD5:-SHA384:-CAMELLIA:-ARIA:-AESCCM8
(将 SECLEVEL=2 更改为 SECLEVEL=1)
对于 运行 的 Maven 构建,我还必须更改 jvm 设置:
请记住,这只是一种解决方法。该设置是安全设置,通常不应更改。