java - 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)。如果我做错了什么,有人可以帮助我或举个例子。
解决方案
推荐阅读
- python - 裁剪矩形并显示在 OpenCV Python 中裁剪的图像
- selenium - Robot Framework 的 Promotheus 指标是否存在?
- c++ - 用于 Linux 的 Cpp 上的计时器
- clickhouse - ClickHouse - CollapsingMergeTree 表引擎 - 记录不会合并,即使它们具有相同的列值和不同的符号(+1/-1)
- django - 如何在 django 中将 CharField 增加 1?
- bash - 使用 echo 以垂直格式打印输出以用于 bash
- c# - 如何使用访问令牌请求 microsoft azure 资源?简而言之,我们如何在 azure 中使用生成的 access_token?
- typo3 - TYPO3 中 Symfony 命令中的依赖注入
- spring - 在 JSP 表示页面中看不到消息表单 modelAndView 对象
- c# - 如何为C#中的Ctrl+C等关键中断实现异常代码