- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在尝试连接到启用了 2 路 SSL 的服务端点。我正在使用 Spring resttemplate。我已将证书添加到 keystore 中,但出现以下错误:
>org.springframework.web.client.ResourceAccessException: I/O error on POST request for "path":Received fatal alert: handshake_failure; nested exception is javax.net.ssl.SSLException: Received fatal alert: handshake_failure
I enabled the SSL debus logs and in the logs I can see the warning as well:
<BEA-000000> <Warning: no suitable certificate found - continuing without client authentication>
相同的代码在我的 DEV 服务器上使用相同的实现工作正常,但在 UAT 服务器上不起作用,但在 UAT 服务器上,同一端点上的 REST 调用工作正常(这也是启用 2 路 SSL)。下面是我用于 SOAP 和 REST 调用的代码:休息:
ObjectMapper mapper = new ObjectMapper();
ServReqRespLogMgr reqRespLogMgr = (ServReqRespLogMgr)UtilityMgr.getBean("servReqRespLogMgr");
SSLContext sc = SSLContext.getInstance(StringUtils.trimToEmpty(PropertyUtil.getProperty("SSL_CONTEXT")));
PasswordEncryptor pe = new PasswordEncryptor();
KeyManagerFactory factory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(PropertyUtil.getProperty("JKS_LOC_VALUE")), pe.decrypt(PropertyUtil.getProperty(IConstants.JKS_PWD_VALUE)).toCharArray());
factory.init(keyStore, pe.decrypt(PropertyUtil.getProperty(IConstants.JKS_PWD_VALUE)).toCharArray());
sc.init(factory.getKeyManagers(), null, null);
CloseableHttpClient httpClient = HttpClients.custom().setSSLContext(sc).build();
ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
HttpHeaders headers = new HttpHeaders();
肥皂:
BindingProvider bindingProvider = (BindingProvider) services;
bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, filenetWsUrl);
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("X-APPCERT", Arrays.asList(StringUtils.trimToEmpty(PropertyUtil.getProperty("FILENET_APP_CERT"))));
bindingProvider.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,headers);
bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, filenetWsUrl);
SSLContext sc = SSLContext.getInstance(StringUtils.trimToEmpty(PropertyUtil.getProperty("SSL_CONTEXT")));
KeyManagerFactory factory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(PropertyUtil.getProperty("JKS_LOC_VALUE")), jksPwd);
factory.init(keyStore, jksPwd);
sc.init(factory.getKeyManagers(), null, null);
//sc.init(factory.getKeyManagers(), null, null);
//End Trust Store
((BindingProvider) services).getRequestContext().put(JAXWSProperties.SSL_SOCKET_FACTORY, sc.getSocketFactory());
我检查了看起来不错的 keystore 文件的权限。如果我切换到一种方式的 SSL 端点,那么它也可以正常工作。我的 Java 运行时是 1.8.0_144,我的应用服务器是 WebLogic 12.2.1.3。
谁能帮我解决这个问题?
最佳答案
以下是您必须检查的几项内容。
这绝对可以解决您的问题。
关于java - 启用 2 路 SSL 的端点的 handshake_failure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51599817/
我正在尝试获取网站的 HTML 源代码。 我的代码: public static void main(String[] args) { URL url; InputStream is;
我在 https://www.ssllabs.com/ssltest/ 上运行了 ssl 证书测试我得到了很好的评价,但我看到一些设备旁边有错误,例如,在握手模拟下,Android 5.0 和 6.0
我的代码试图访问与应用程序位于同一服务器上的模板文件。在我们打开 SSL 之前一切正常。 现在,当连接到文件时,我得到一个 SSLHandshakeException: handshake_failu
我有一个在 docker 容器上的 tomcat (v8.0.44) 上运行的 Java 8 应用程序。此应用程序调用外部 https url(我无法提供 url),但出现以下错误: Exceptio
这个问题在这里已经有了答案: Warning: no suitable certificate found - continuing without client authentication (
我正在尝试使用 liferay 中的 javapns 库向我的设备发送推送通知。这是代码: private void pushNotification(ActionRequest actionRequ
我正在编写一个 Java 客户端(在 weblogic 10.3 上)来调用一个安全的网络服务。我已获得安装在 cacerts、DemoIdentity.jks 和 DemoTrust,jks 中的客
我雇用了一项网络服务,可以向手机发送短信。我尝试发出发布请求,但收到错误: Exception in thread "main" javax.net.ssl.SSLHandshakeException
我在 Tomcat 中授权 ssl 连接时遇到问题。我开发了使用证书连接到外部服务器的类。当我在命令行中运行它时它工作正常。但是当我从 Tomcat 中托管的 JSP 页面调用它时,会抛出如下异常:
我正在尝试使用 Java HTTP 客户端从 HTTPS 服务器下载图像... System.setProperty("javax.net.debug", "all"); System.setProp
我正在使用 quickfix 来验证服务器的证书并获得致命的 handshake_failure。 在我看来是这样的: 初始握手开始 客户端连接。 服务器接受。 在此期间发生 TLS 握手: o 密码
我正在尝试向我们的其中一个服务器 url 发送请求,但每当我尝试连接时,我都会收到这种期望 java.net.ConnectException: Received fatal alert: hands
可以看成是重复的问题。我已经遍历了与此问题相关的所有可能的 stackoverflow 线程,并且尝试了所有解决方案但没有运气。实际上,应用程序正在使用 httpclient-4.3.4.jar 并在
我正在尝试在我们的服务器(Ubuntu、SSL 证书)和我们的合作伙伴(通过 AS2 通信)之间建立连接。当合作伙伴尝试连接到我们的服务器时,他收到错误消息 HANDSHAKE_FAILURE。 由于
我正在尝试连接到启用了 SSL 的 LDAP 服务器。我不想使用身份验证,因此我覆盖了 SSLSocketFactory 以允许每个站点。我收到以下错误: main, handling excepti
我正在尝试使用带有 WolfSSL 的 tls1.2 将嵌入式设备连接到 smtp.gmail.com:465。该库创建并发送以下 clientHello 消息并收到握手失败消息。 16 03 03
iOS 推送通知 由于 handshake_failure 而失败,但它在我的本地机器上运行良好,但在部署到服务器时出现错误。 我正在使用 apns-0.1.5.jar 代码: static
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 我在 soapui 中使用休息服务。我必须在命
当我使用 curl 查询时,logz.io 就像魅力一样: curl -XPOST 'https://api.logz.io/v1/query' --header "X-USER-TOKEN : VA
直到昨天(9 月 22 日),我的微服务在生产中运行良好,今天它在与 AWS Athena 通信时开始发出握手失败。 我已经检查了 SSL 证书,它似乎很好并且有效。 环境: Java 7, Tomc
我是一名优秀的程序员,十分优秀!