首页 > 解决方案 > java.security.NoSuchAlgorithmException:没有这样的算法:提供者 BCJSSE 的 TLS1.2

问题描述

我正在使用充气城堡 jar 来获取 TLS1.2 实例,但出现以下异常:>

java.security.NoSuchAlgorithmException: no such algorithm: TLS1.2 for provider BCJSSE
at sun.security.jca.GetInstance.getService(GetInstance.java:157)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:281)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:24)
at com.fca.mopar.partSegmentation.service.PartDataService.getRestTemplate(PartDataService.java:108)
at com.fca.mopar.partSegmentation.service.PartDataService.fetchPartInfo(PartDataService.java:161)
at com.fca.mopar.partSegmentation.controllers.MPIMController.partDetails(MPIMController.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)

下面是代码:

`

Security.addProvider(new BouncyCastleJsseProvider());
SSLContext context = SSLContext.getInstance("TLS1.2", Security.getProvider("BCJSSE"));
context.init(null, null, null);
CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLContext(context).build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
restTemplate = new RestTemplate(factory);

`

我们需要调用具有 TLSv1.2 的 Web 服务,并且我们的服务器具有较低的 TLS 版本,因此握手失败。(JDK:v1.6,JARS:bcprov-jdk15on-160,bctls-jdk15on-160)。如果我做错了什么,有人可以帮助我或举个例子。

标签: javabouncycastletls1.2

解决方案


推荐阅读