完成后,当我将Java从8.0.6.15升级到8.0.6.25时,我有一个问题,我测试连接到一个endpoint,我将称之为“endpoint.server”,我得到一个handshake_failure。
除了升级之外,我没有更改任何东西,所以安全策略文件等仍然相同。
当我检查日志时,我确实看到了一些奇怪的东西,即在ClientHello握手消息阶段:
"ClientHello": {
"client version" : "TLSv1.2",
"random" : "43 8B 8E 7E 3E 91 E9 9D 4A 1B 60 40 9B 42 AD ED 18 14 48 06 3E 84 4D A3 C4 F8 ED 8D DE 73 1A EA",
"session id" : "DD 61 0A ED B9 2D 52 DA EB 5C DF 1C 61 B3 73 49 9C 7C A4 CF C5 E2 1D 00 F5 24 B2 DB 5B 58 B0 94",
"cipher suites" : "[TLS_AES_256_GCM_SHA384(0x1302), TLS_CHACHA20_POLY1305_SHA256(0x1303), TLS_AES_128_GCM_SHA256(0x1301)]",
"compression methods" : "00",
"extensions" : [
"server_name (0)": {
type=host_name (0), value=endpoint.server
},
"supported_groups (10)": {
"versions": [secp256r1, secp384r1, secp521r1]
},
"signature_algorithms (13)": {
"signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_ps
s_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
},
"signature_algorithms_cert (50)": {
"signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_ps
s_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha1, rsa_pkcs1_sha1]
},
"supported_versions (43)": {
"versions": [TLSv1.3]
},
"psk_key_exchange_modes (45)": {
"ke_modes": [psk_dhe_ke]
},
"key_share (51)": {
"client_shares": [
{
"named group": secp256r1
"key_exchange": {
0000: 04 ac 3a de da 54 45 3a 48 e2 95 d9 97 24 bd 38 .....TE.H......8
0010: cf bb e3 8c b9 98 e6 31 46 06 da 89 db 07 2e c7 .......1F.......
0020: 77 79 8d bc 39 8b 54 f8 a1 ab 27 1f 39 b2 6e aa wy..9.T.....9.n.
0030: be ae 5d 50 c1 19 69 4a 9f 60 20 1a 61 40 ba ce ...P..iJ....a...
0040: cf
}
},
]
}
]
}
如果我错了,请纠正我,但似乎它想使用以下密码:
[TLS_AES_256_GCM_SHA384(0x1302), TLS_CHACHA20_POLY1305_SHA256(0x1303), TLS_AES_128_GCM_SHA256(0x1301)]
这些密码用于TLSv1.3,但根据以下内容,它使用的是TLSv1.2。
"client version" : "TLSv1.2"
我尝试连接到“endpoint.server”的服务器仅支持 TLSv1.2 和以下密码:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA265
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA265
对于我发现的内容,它不可能是有限/无限的安全策略文件,因为它们不会根据此 url 更改:https://www.ibm.com/docs/en/sdk-java-technology/8?topic=guide-sdk-security-policy-files#sdkpolicyfiles
我也尝试了这个设置:com.ibm.jsse2.overrideDefaultCSName,值为true和false,但这没有任何作用。
在java.security中,它使用以下设置:
jdk.certpath.disabledAlgorithms = [MD2, MD5, SHA1 jdkCA & usage TLSServer, RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224]
jdk.tls.disabledAlgorithms = [SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, DESede, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, DES_CBC]
如您所见,这里没有任何关于我禁用TLSv1.2的内容。
我还尝试了以下方法,那就是我将8.0.6.15版本的java/jre/lib/security的完整文件夹复制到8.0.6.25。当我在这之后做一个测试连接时,它工作了。
有人知道这两个版本的java/jre/lib/Security有什么区别吗?
据我所知,我之前说过,有限/无限安全策略文件不会根据给定的url更改。
我已经解决了这个问题,通过使用Java 8.0.6.25编辑java.security文件,它看起来像:
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.crypto.plus.provider.IBMJCEPlus
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
security.provider.5=com.ibm.security.cert.IBMCertPath
security.provider.6=com.ibm.security.sasl.IBMSASL
security.provider.7=com.ibm.xml.crypto.IBMXMLCryptoProvider
security.provider.8=com.ibm.xml.enc.IBMXMLEncProvider
security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
security.provider.10=sun.security.provider.Sun
我已将其更改为:
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
security.provider.4=com.ibm.security.cert.IBMCertPath
security.provider.5=com.ibm.security.sasl.IBMSASL
security.provider.6=com.ibm.xml.crypto.IBMXMLCryptoProvider
security.provider.7=com.ibm.xml.enc.IBMXMLEncProvider
security.provider.8=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
security.provider.9=sun.security.provider.Sun
出于某种原因,它想使用com.ibm.crypto.plus.provider.IBMJCEPlus,即使失败了,它也不会尝试另一个,所以最简单的方法是从java.security文件中删除com.ibm.crypto.plus.provider.IBMJCEPlus。
我在Ubuntu18.04上使用ELasticsearch。当我尝试运行“./elasticsearch-setup-passwords”脚本时,它显示以下错误。 未来版本的Elasticsearch将需要Java 11;您的Java版本[/usr/lib/jvm/java-8-openjdk-amd64/jre]不符合此要求 但当我检查Jaa版本时,它显示的是Java 11号。 我把Java从8
我正在尝试在我们现有的多个项目中将spring从2.1.1升级到2.2.0。我已经在几个项目中完成了这项工作,一切都很顺利。 在当前项目中,我做了相同的更改: 现在,当我尝试启动我的应用程序时,我遇到以下错误: 我检查过,根据文档,这个类应该在我当前的spring core版本中可用:https://docs.spring.io/spring/docs/5.2.0.RELEASE/javadoc-
我刚刚更新了一些flutter软件包。但是,在执行flutter运行时我一直收到此错误。如果我将apk直接安装到设备上,它可以正常工作(这意味着我可以执行flutter build apk),但是,在调试模式下看不到运气。 我最初发布这个帖子时有一个multidex问题,我想我已经通过在build.gradle中将gradle地址更新为4.3.zip解决了这个问题。 任何帮助都将不胜感激。 这是我
本文向大家介绍ASP.NET 5升级后如何删除旧版本的DNX,包括了ASP.NET 5升级后如何删除旧版本的DNX的使用技巧和注意事项,需要的朋友参考一下 ASP.NET 5各种升级后旧版本的DNX不会删除,想删除旧版本的DNX,可以通过以下命令完成,在此之前先介绍一下DNX架构及运行原理 DNX是ASP.NET程序运行的核心,其遵循如下两个准则: DNX应该是自包含的,DNX在解析完应用程序依赖
我已经将Typo3从版本4升级到版本7,ajaxendpoint不再工作,有人知道typoscript中简单ajaxendpoint定义的使用是否有未记录的更改吗?或者可能是请求的URL现在不同了? 原始定义如下所示: 控制器的简化版本如下所示: 原始请求url为: 指数php?id=176 我仅在调试模式下获得as请求结果: 因此,打字稿的定义似乎在起作用,但似乎有些地方出了问题:( 更新:我找
我正在运行《docker compose》中的jenkins,来自图片jenkins/jenkins。升级到Jenkins 2.277.1后,LDAP身份验证停止工作,我无法登录。我收到以下错误: 詹金斯。docker。new\u 1 | 2021 06-04 14:49:31.3110000[id=138]警告o.j.p.p.DiskUsageCollector#collect:无法获取磁盘使用