Wildfly中的自签名证书不起作用,但在Spring-boot上起作用

问题描述

所以我有以下节段代码

div

它正在docker容器中的Wildfly中的一个部署上运行,试图连接到另一个名为System.setProperty("javax.net.ssl.trustStore","/opt/jboss/wildfly/standalone/configuration/server.keystore"); System.setProperty("javax.net.ssl.trustStorePassword","password"); System.setProperty("https.protocols","TLSv1,TLSv1.1,TLSv1.2"); ServiceOrder serviceOrder = new ServiceOrder(); ServiceOrderInterface orderInterface = serviceOrder.getServiceOrderPort(new AddressingFeature()); BindingProvider bindingProvider = (BindingProvider)orderInterface; bindingProvider.getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"https://remoteservice:8095/service-order"); SSLContext sc = SSLContext.getInstance("SSLv3"); KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType() ); char[] password = "password".tochararray(); ks.load(new FileInputStream("/opt/jboss/wildfly/standalone/configuration/server.keystore"),password ); kmf.init( ks,password ); sc.init( kmf.getKeyManagers(),null,null ); bindingProvider.getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",sc.getSocketFactory() ); System.out.println("################"); System.out.println(System.getProperty("javax.net.ssl.trustStore")); System.out.println("################"); orderInterface.createServiceOrder(soapRequest); 的容器。 remoteservice使用的是自签名证书,该证书已导入remoteservice

当我尝试运行它时,我会得到

server.keystore

如果我采用这段代码并创建一个春季启动的空应用程序,然后将其粘贴并使用

运行
2020-10-01 17:19:02,718 INFO  [stdout] (externalChangesListenerContainer-1) ################
2020-10-01 17:19:02,718 INFO  [stdout] (externalChangesListenerContainer-1) /opt/jboss/wildfly/standalone/configuration/server.keystore
2020-10-01 17:19:02,747 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (externalChangesListenerContainer-1) Interceptor for {http://group.redacted.com/contract/vbs/service/service-order/v1}ServiceOrder#{http://group.redacted.com/contract/vbs/service/service-order/v1}CreateServiceOrder has thrown exception,unwinding Now: org.apache.cxf.interceptor.Fault: Could not send Message.
        ...
Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://remoteserver:8095/service-order: Remote host closed connection during handshake
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1390)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1374)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
        at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        ... 18 more

或者我将其编译并使用java -jar

运行
mvn spring-boot:run

它工作正常,没有任何问题,我可以在mvn clean package spring-boot:repackage java -jar target/demo-0.0.1-SNAPSHOT.jar 上进行验证,它可以毫无问题地进行通信。

remoteservice

我不明白无法在Wildfly上运行的代码错误之处

我已将其添加到Wildfly,但无济于事

################
/opt/jboss/wildfly/standalone/configuration/server.keystore
################
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.378s
[INFO] Finished at: Thu Oct 01 17:34:36 UTC 2020
[INFO] Final Memory: 26M/495M
[INFO] ------------------------------------------------------------------------
[root@ef99b6ef3b60 demo]# java -jar target/demo-0.0.1-SNAPSHOT.jar

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)