当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-调用另一个需要证书的web服务

糜昌胤
2023-03-14

我有一个Spring Boot rest服务,它将调用另一个web服务(用.NET编写),但它需要安装web服务的服务器的公共证书。

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://domain.sample.com/api/message.asmx": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Process finished with exit code -1
RestTemplate restTemplate = new RestTemplate();

HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.TEXT_XML);

HttpEntity<String> entity = new HttpEntity<>(rawDeviceMessage, httpHeaders);

ResponseEntity<String> resultEntity = restTemplate.postForEntity("https://domain.sample.com/api/message.asmx", entity, String.class);

共有1个答案

贝凯
2023-03-14

正如@Mustafa在上面的评论部分提到的,以下是重复的,问题得到了解决。

spring MVC中无法验证目标证书的异常

 类似资料:
  • 这是我之前问题的扩展。我实现了Dennis R的答案,并且正在使用。有没有办法要求在json请求中指定一个或另一个字段,但不能同时指定两个?从我之前的帖子中,在Request类中,我希望用户传入id或代码,但不能同时传入。 我发现这个资源对我来说可能是正确的解决方案,但我不完全理解那里发生了什么,为什么它有效,坦率地说,它看起来太冗长了。这是唯一的方法吗?

  • 有一个受证书保护的Web服务。在调用它的客户端代码中,证书的CA必须存在于信任库(JRE_path\lib\security\cacerts)中——如果没有,则客户端会出现PKIX异常。 如果证书过期了会发生什么?客户端代码失败。 但是,可以通过直接将证书添加到信任库中来绕过这一点——信任过期的证书 i、 e.如果信任库中存在证书本身,而不是CA,那么即使证书已过期,一切都可以工作。 在我的场景中

  • 问题内容: 我有两个字段,仅当两个字段都不存在时才是可选的: 现在,需要大于。如何包含此过滤器? 问题答案: 有 没有内置的验证 ,它可以让你比较字段值一样,在 Laravel ,所以你需要实现一个 自定义的验证 ,这将让你重新使用验证需要的地方。幸运的是,Laravel使编写自定义验证器 变得非常容易 。 首先在您的 AppServiceProvider中 定义新的验证器: 现在,您可以在 $

  • 问题内容: 我想将对Flask应用程序发出的请求代理到计算机上本地运行的另一个Web服务。我宁愿使用Flask而不是使用更高级别的Nginx实例,以便我们可以重用内置在应用程序中的现有身份验证系统。我们越能保持“单一登录”越好。 是否有现有的模块或其他代码可以执行此操作?尝试将Flask应用程序桥接到诸如httplib或urllib之类的东西很麻烦。 问题答案: 我在基于Werkzeug的应用程序