Websphere 不信任证书

2023-11-25

我有一个 Web 应用程序,它调用通过 SSL 保护的 SOAP Web 服务。(https://zzzzzzzzzzzz/xxxxx).

服务器发送两个证书(根和叶),因此我使用以下属性导入两个证书:com.ibm.websphere.ssl.retrieveLeafCert .

要在 websphere 上启用 ssl 验证,我只需将证书添加到 websphere 中:

SSL 证书和密钥管理 -> 密钥存储和证书 -> NodeDefaultTrustStore -> 签名者证书 -> 从端口检索:

  • 主机:主机名
  • 端口:443
  • 别名:别名

问题是 webshphere 不信任证书并给我这个堆栈跟踪,

used by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking `https://------------------------------` : com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: 
    java.security.cert.CertPathValidatorException: T`he certificate issued by CN=-------------------------------------------------------------------- is not trusted`; internal cause is: 
    java.security.cert.CertPathValidatorException: Certificate chaining error
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.6.0]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:56) ~[na:1.6.0]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39) ~[na:1.6.0]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:527) ~[na:1.6.0]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1338) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1322) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:354) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:385) ~[cxf-rt-frontend-jaxws-2.7.4.jar:2.7.4]
    ... 100 common frames omitted
`Caused by: javax.net.ssl.SSLHandshakeException`: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: 
    java.security.cert.CertPathValidatorException: `The certificate issued by CN=--------------------------------------------------------- is not trusted`; internal cause is: 
    java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.jsse2.o.a(o.java:8) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:549) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.kb.a(kb.java:355) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.kb.a(kb.java:130) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.lb.a(lb.java:135) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.lb.a(lb.java:368) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.kb.s(kb.java:442) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.kb.a(kb.java:136) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:495) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:223) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:724) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:81) ~[na:6.0 build_20130515]
    at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:8) ~[na:6.0 build_20130515]
    at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:20) ~[na:6.0 build_20130515]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1043) ~[na:1.6.0]
    at com.ibm.net.ssl.www2.protocol.https.b.getOutputStream(b.java:85) ~[na:6.0 build_20130515]
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:168) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1282) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1233) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:195) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) ~[cxf-api-2.7.4.jar:2.7.4]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1295) ~[cxf-rt-transports-http-2.7.4.jar:2.7.4]
    ... 110 common frames omitted
`Caused by: com.ibm.jsse2.util.j: PKIX path building failed:` java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is: 
    java.security.cert.CertPathValidatorException: T`he certificate issued by CN=--------------------------------------------  is not trusted`; internal cause is: 
    java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.jsse2.util.h.b(h.java:39) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.util.h.b(h.java:21) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.util.g.a(g.java:1) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.pc.a(pc.java:36) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.pc.checkServerTrusted(pc.java:19) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.pc.b(pc.java:51) ~[na:6.0 build_20130515]
    at com.ibm.jsse2.lb.a(lb.java:65) ~[na:6.0 build_20130515]
    ... 128 common frames omitted
Caused by: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild(PKIXCertPathBuilderImpl.java:411) ~[na:na]
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:258) ~[na:na]
    at com.ibm.jsse2.util.h.b(h.java:107) ~[na:6.0 build_20130515]
    ... 134 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: The certificate issued by CN=-------------------------------------------------------
    at com.ibm.security.cert.BasicChecker.<init>(BasicChecker.java:111) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathValidatorImpl.engineValidate(PKIXCertPathValidatorImpl.java:178) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.myValidator(PKIXCertPathBuilderImpl.java:737) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.java:649) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.buildCertPath(PKIXCertPathBuilderImpl.java:595) ~[na:na]
    at com.ibm.security.cert.PKIXCertPathBuilderImpl.engineBuild(PKIXCertPathBuilderImpl.java:357) ~[na:na]
    ... 136 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: Certificate chaining error
    at com.ibm.security.cert.CertPathUtil.findIssuer(CertPathUtil.java:298) ~[na:na]
    at com.ibm.security.cert.BasicChecker.<init>(BasicChecker.java:108) ~[na:na]
    ... 141 common frames omitted

相同的代码在我的本地环境中进行了测试,只需使用安装cert.java并使用 -Djavax.net.ssl.trustStore=jssecacerts 运行我的测试(jssecacerts 是 InstallCert.java 生成的文件)。


感谢以上大家的回复。能够通过以下配置解决问题 java.security.cert.CertPathValidatorException:证书链接错误。

  1. Found that the following javax properties returned null value in the WebSphere.
    • javax.net.ssl.trustStore,
    • javax.net.ssl.trustStorePassword
    • javax.net.ssl.trustStoreType

欲了解更多详情,请参阅此链接,

java - trustStore 的路径 - 设置属性不起作用?

  1. 在WebSphere中配置如下属性

    选择服务器 > 应用程序服务器 > server_name > 进程定义 > Java 虚拟机 > 自定义属性 > 新建。

a) javax.net.ssl.trustStore = jre_install_dir\lib\security\cacerts

示例:C:\Program Files\WebSphere\AppServer\java\jre\lib\security\cacerts

b) javax.net.ssl.trustStorePassword = Changeit(默认)

c) javax.net.ssl.trustStoreType = jks

欲了解更多详情,请参阅此链接,

http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.isim.doc_6.0%2Finstalling%2Ftsk%2Ftsk_ic_ins_first_security_truststore.htm

配置完成后,可以在日志中看到证书已添加到信任存储区。

谢谢, 乌代·尼莱卡

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Websphere 不信任证书 的相关文章

  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • 简单 XML 框架:ElementMap 中的对象具有“类似内联”的行为

    我正在尝试在 Android 上序列化自定义对象的 Hashmap 以获得如下 xml
  • 如何在ArrayList中的特定位置插入对象

    假设我有一个大小为 n 的对象的 ArrayList 现在我想在特定位置插入另一个对象 假设在索引位置 k 大于 0 且小于 n 并且我希望索引位置 k 处及其之后的其他对象向前移动一个索引位置 那么有没有什么方法可以直接在Java中做到这
  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 有关 CredEnumerate 的帮助

    作为后续this https stackoverflow com questions 199518 how to programatically add mapped network passwords winxp我希望有人可以帮助解决这个
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • WCF、REST、SSL、客户端、自定义证书验证

    我有一个无法解决的具体问题 让我详细解释一下 我是这项技术的新手 所以我可能使用了一些错误的术语 如有不明白之处 请指正并解释或要求解释 我正在创建一个自托管的 WCF REST 服务器 托管在 WPF 应用程序中 它使用 https SL
  • Spring HATEOAS 和 HAL:更改 _embedded 中的数组名称

    我正在尝试使用 Spring HATEOAS 构建符合 HAL 的 REST API 经过一番摆弄后我终于开始工作了mostly正如预期的那样 示例 输出现在看起来像这样 links self href http localhost 808
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List
  • JPA Web 应用程序管理策略

    我们目前正在开发一个 J2EE Web 应用程序 使用 JPA 作为我们的数据访问层 我们目前正在研究几种不同的策略来在我们的应用程序中利用缓存 Create an EntityManager per request 在请求范围内获取缓存
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • 具有隐式授权的 OAuth 应用程序中的客户端模拟

    来自 OAuth 草案 隐式section https datatracker ietf org doc html draft ietf oauth v2 31 section 1 3 2 在隐式授权流程期间发出访问令牌时 授权服务器不对客
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • com.sun.xml.ws.message.saaj.SAAJHeader 无法转换为 com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

    我正在尝试访问第三方 Web 服务 该服务要求我创建一个传递时间信息 用户名和密码的安全标头 我在网上搜索了可行的示例 并尝试了多种方法 我正在尝试使用 Java 6 中内置的内容来做到这一点 我不确定我做错了什么 从 WSDL 生成 We

随机推荐

  • 在我的 WPF 应用程序中托管 Windows Shell Explorer

    是否可以将 Windows 资源管理器文件 文件夹浏览器视图嵌入到 WPF 或 WinForms 窗口中 我基本上想将文件 文件夹浏览器作为我的应用程序窗口的一部分托管 我不想重新实现 shell 提供的功能 尤其是像 TortoiseSV
  • 如何使用javascript突出显示文本

    有人可以帮助我使用一个可以突出显示网页上文本的 JavaScript 函数吗 要求是仅突出显示一次 而不是像我们在搜索时那样突出显示所有出现的文本 你可以使用jquery突出效果 但如果您对原始 javascript 代码感兴趣 请看看我得
  • 如何在groovy中添加当前日期的年份或月份?

    如何在groovy脚本中向当前日期添加一年 def Format1 yyyy MM dd def today new Date def currentDate today format Format1 例如 2015年7月29日至2016年
  • 如何在 Firestore 中跨集合查询数据?

    下面的文档中写道 如果需要跨集合查询数据 请使用根级集合 https cloud google com firestore docs data model 如果有人知道在 Firestore 中跨根级集合查询数据的示例 请分享该示例 我不确
  • Java有可索引的多队列线程池吗?

    是否有一个 Java 类 可以通过 id 添加可执行任务 其中具有相同 id 的所有任务保证永远不会同时运行 线程数可以限制为固定数量 简单的 Map 解决方案可以轻松解决 1 但很难管理 2 同样 我所知道的所有线程池类都会从单个队列中提
  • Hadoop 上理想的减速器数量是多少?

    正如 Hadoop wiki 给出的 计算理想的减速器数量是 0 95 或 1 75 节点 mapred tasktracker tasks maximum but 什么时候选择0 95 什么时候选择1 75 决定这个乘数时考虑的因素是什么
  • 将文件从 MVC 5 下载到 Angular 2

    我有 C 后端和 ASP Net MVC 经验 现在我正在第一次尝试 Angular 2 这需要时间 但我喜欢其中的大部分 现在我陷入了简单的文件下载 我已阅读在 Stackoverflow 上找到的所有示例 但我的示例仍然无法运行 在服务
  • .bashrc 语法错误:意外的文件结尾

    我收到意外的文件结束错误 我不太确定如何解决它 Source global definitions if f etc bashrc then etc bashrc fi User specific aliases and functions
  • 如何对 List 进行排序以首先列出目录并按目录对文件进行分组?

    为了获取指定目录中包含的所有文件并根据某些扩展名 我使用以下方法listFiles班级的FileUtils from Apache 公共 IO库 如以下代码示例所示 ArrayList
  • Kendo Grid 滚动到选定的行

    我希望能够调用一个将 Kendo 网格滚动到所选行的函数 我已经尝试过一些方法 但没有一个有效 例如我尝试过这个 var grid Grid data kendoGrid content k grid content content scr
  • 从 SOAP 请求中删除命名空间

    我已导入 WSDL 并使用它来发送 SOAP 请求 它看起来像这样
  • 如何在 GTK/QT/Clutter 应用程序中使用 ZeroMQ?

    In gtk应用程序的所有执行都发生在gtk main功能 其他图形框架作品也有类似的事件循环 例如app exec for QT and clutter main for Clutter 然而ZeroMQ基于以下假设 while 1 它被
  • 在 Django 中提供动态生成的 ZIP 档案

    如何在 Django 中为用户提供动态生成的 ZIP 存档 我正在创建一个网站 用户可以在其中选择可用书籍的任意组合并将其下载为 ZIP 存档 我担心为每个请求生成这样的档案会使我的服务器速度变慢 我还听说 Django 目前没有一个很好的
  • 将空值替换为行 SQL Server 查询中以前的可用值

    我正在寻找构建一个查询来用以前的可用值替换空值 有人可以帮忙吗 这是当前看起来像的表 11 30 2015 ID1 CLassName 1 NULL ID1 CLassName 2 NULL ID1 CLassName 3 NULL ID1
  • paypal api:无需送货地址即可立即付款

    为这个问题我花了好几个小时把头发扯下来 我找不到办法立即付款通过 paypal api 无需指定送货地址 我出售的门票是通过电子邮件发送的 无需运费 有信息指定您必须创建 网络体验配置文件 但是 一是我不知道如何将 WebProfile 传
  • C++ 中不稳定错误的最常见原因?

    我目前正在做一个大项目 大部分时间都花在调试上 虽然调试是一个正常的过程 但也存在一些不稳定的错误 这些错误是开发人员最大的痛苦 该程序有时不起作用 有时它起作用 但您对此无能为力 针对这些错误可以采取什么措施 最常见的调试工具 交互式调试
  • 尝试将核心类(java.* 或 javax.*)包含在核心库以外的内容中

    嗨 我是新安卓 我正在处理示例 但在运行 HelloGridView 应用程序时出现错误 Eclipse 给出以下错误 有人遇到过以下错误吗 谢谢 2010 12 06 14 38 16 HelloGridView 处理 javax net
  • 如何在 Spark 中访问广播的 DataFrame

    我创建了两个数据框 它们来自 Hive 表 PC ITM 和 ITEM SELL 并且大小很大 我正在使用它们 经常在SQL查询中通过注册为表 但是由于这些数据很大 所以需要很多时间 以获得查询结果 所以我将它们保存为镶木地板文件 然后读取
  • “无法找到与应用程序标识符''匹配的有效配置文件”错误

    我正在开发一个应用程序 我想将其安装到一些 iPad 而不是 App Store 上 我购买了开发者许可证 并在 Xcode 上添加了规定 现在 当我尝试为已连接到计算机的 iPad 构建应用程序时 出现错误 A valid provisi
  • Websphere 不信任证书

    我有一个 Web 应用程序 它调用通过 SSL 保护的 SOAP Web 服务 https zzzzzzzzzzzz xxxxx 服务器发送两个证书 根和叶 因此我使用以下属性导入两个证书 com ibm websphere ssl ret