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

出站连接的SSL配置不工作在websphere-自由17.0.0.2

鲁丰
2023-03-14

我正在尝试将 Websphere-liberty 服务器配置为对所有出站连接(实际上是 REST 调用)使用缺省密钥库和信任库,对于入站使用自定义密钥和信任库。但是,当尝试调用外部 REST 服务时,SSL 手抖异常会失败。在日志中,我可以看到它使用我的自定义信任库而不是默认信任库。
下面是我的服务器.xml

<?xml version="1.0" encoding="UTF-8"?>
<server description="Default server">
    <featureManager>
        <feature>appSecurity-2.0</feature>
        <feature>transportSecurity-1.0</feature>
        <feature>jaxrs-2.0</feature>
        <feature>json-1.0</feature>
        <feature>javaMail-1.5</feature>
        <!--<feature>ssl-1.0</feature>-->
    </featureManager>

    <sslDefault sslRef="saasSSLConfig" outboundSSLRef="outboundSSLConfig" />

    <ssl id="saasSSLConfig" keyStoreRef="saasKeyStore" trustStoreRef="saasTrustStore" clientAuthentication="true" sslProtocol="TLSv1" />
    <keyStore id="saasKeyStore" location="/opt/ibm/wlp/output/defaultServer/resources/security/sbs_endpoint_keystore.jks" password="pwd" />
    <keyStore id="saasTrustStore" location="/opt/ibm/wlp/output/defaultServer/resources/security/serverTruststore.jks" password="pwd" />

    <ssl id="outboundSSLConfig" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" />

    <basicRegistry id="basic" realm="BasicRealm">
        <!-- <user name="yourUserName" password="" />  -->
    </basicRegistry>

    <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443" />
    <applicationManager autoExpand="true"/>
</server>

顺便说一下,如果将saasSSLConfig更改为使用defaultTrustStore而不是saasTrustStor,那么一切都可以正常工作。

服务器版本:

WebSphere Application Server 17.0.0.2 (1.0.17.cl170220170523-1818) on IBM J9 VM, version pxa6480sr4fp7-20170627_02 (SR4 FP7) (en_US)

错误:

[ERROR] CWPKI0022E: SSL HANDSHAKE FAILURE:  A signer with SubjectDN CN=*.api.ibm.com, O=International Business Machines, L=Armonk, ST=New York, C=US was sent from the target host.  The signer might need to be added to local trust store /opt/ibm/wlp/output/defaultServer/resources/security/serverTruststore.jks, located in SSL configuration alias saasSSLConfig.  The extended error message from the SSL handshake exception is: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.;
SSLHandshakeException invoking https://dev.api.ibm.com/scx/test/sbs/customer/222222222: java.security.cert.CertificateException: PKIXCertPathBuilderImpl could not build a valid CertPath.

共有2个答案

支淮晨
2023-03-14

在您的配置中,我没有看到defaultKeyStore和defaultTrustStore的keyStore元素。如果它们丢失,将导致outboundSSLConfig是无效的SSL配置。请你把它们加起来,看看是否有效。

田柏
2023-03-14

Liberty 不会自动加载 cacerts。如果需要,您可以创建一个 keyStore 元素来指向它。因此,在上述情况下,您可以创建这样的配置。

<ssl id="outboundSSLConfig" keyStoreRef="cacertKeyStore" />
<keyStore id="cacertKeyStore" location=<fill in path to your jdk cacerts file> password="changeit" />

我假设您不需要此配置的密钥,因此我简化为出站SSLConfig上的keyStoreRef。它将使用 keyStoreRef 指向的密钥和信任。

 类似资料:
  • 我正在尝试将连接到CISC的战争部署到WebSphere Liberty Profile应用程序服务器8.5.5。它在was中运行完美,但是缺少一个功能,但我不知道是哪个。

  • 我正在为一个tomcat实例修补RH Linux7上的自签名证书,但有一段时间,我没有浏览器警告。我在这里遵循了这些人的说明(让Chrome接受自签名的本地主机证书),并尝试使用KeyTool将.crt导入到我的tomcat实例中。使用以下命令- 创建密钥库-keytool-keysize 2048-genkey-alias tomcat-keyalg RSA-keystore tomcat.ke

  • 我为3节点Kafka集群设置了ACL,并能够通过生产者控制台和消费者控制台发送和接收主题。现在我想用ACL配置Kafka连接。我尝试了SASL_PLAINTEXT组合和连接。日志文件,它显示以下错误。它没有从源表同步到主题,请在我缺少任何配置的地方提供帮助。 错误日志 我的配置如下文件所示。我在jaas中提到过用户。conf文件并设置到环境中。 1: zookeeper.properties 2:

  • 我的web.xml是由eclipse生成的,看起来如下所示: 那么这里的问题是什么呢?

  • 如何配置WebSphere app server以使用ssl(如何将服务器(WMQ)证书添加到信任存储?或者信任存储在哪里?)?

  • 我有以下建立SSL连接的简单代码。 如果我在Java8下运行这段代码,它就不起作用了。它以开始SSL握手时停止。 代理端口:8081 如果删除或将其设置为false,它也不能用于Java10。但是通过系统属性设置代理设置是不起作用的。