小编ear*_*dap的帖子

如何在春季启动时使用不受密码保护(.p12)的SSL证书

我有一个.pem证书,必须在我的Spring Boot应用程序中使用。现在,由于Java无法理解.pem格式,因此我将其转换为.p12格式。

由于我们已经有一个不受任何密码保护的.pem证书,因此我也尝试避免使用.p12密码。

我创建了两个.p12文件,其中一个使用以下命令使用密码:

openssl x509 -signkey sslcert.key  -in sslcert.csr   -req -days 365
-out sslcert.pem
Run Code Online (Sandbox Code Playgroud)

另一个没有密码的命令如下:

openssl pkcs12  -inkey sslcert.key  -in sslcert.pem  -export -passout
pass: -nokeys -out sslcert.p12
Run Code Online (Sandbox Code Playgroud)

我能够在spring boot应用程序中使用以下属性,使用带有密码的密码成功获得结果:

server.port=8443  
server.ssl.enabled=true 
server.ssl.key-store-type=PKCS12 
server.ssl.key-store=keys/sslcert.p12 
server.ssl.key-store-password=password
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用不带密码的密码(这是我的偏好)时,却遇到了sslhandshake异常。

而且,我无法弄清楚如何将此信息传递给ssl没有密码保护的spring boot。

到目前为止,我尝试了许多组合,例如不传递密码属性或将其保留为空,但在所有情况下均失败。

server.port=8443 
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=keys/sslcert.p12
Run Code Online (Sandbox Code Playgroud)

我低于异常:

javax.net.ssl.SSLHandshakeException: no cipher suites in common
    at sun.security.ssl.Handshaker.checkThrown(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.writeAppRecord(Unknown Source)
    at sun.security.ssl.SSLEngineImpl.wrap(Unknown Source)
    at javax.net.ssl.SSLEngine.wrap(Unknown Source)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.flush(SslConnection.java:864)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:515)
    at org.eclipse.jetty.server.HttpConnection.fillRequestBuffer(HttpConnection.java:331)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:243)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:411)
    at …
Run Code Online (Sandbox Code Playgroud)

java ssl spring spring-boot

6
推荐指数
1
解决办法
144
查看次数

Spring Integration通过tcp连接接收和发送消息

我正在尝试使用Spring Integration实现以下场景:

  • 我需要通过TCP IP连接到服务器并处理收到的消息.
  • 我需要将消息发送到接收和处理响应的同一服务器.

这是我的配置:

 <channel id="input">

        <interceptors>
            <wire-tap channel="logger"/>
        </interceptors>
    </channel>


    <logging-channel-adapter id="logger" level="DEBUG" log-full-message="true"/>

    <ip:tcp-connection-factory id="factory" type="client" host="localhost" port="9004" single-use="false"
                               using-nio="true" deserializer="javaDeserializer"/>

    <ip:tcp-inbound-channel-adapter id="inbound" channel="input" connection-factory="factory" client-mode="true"
                                    retry-interval="5000"/>
Run Code Online (Sandbox Code Playgroud)

我可以接收从服务器发送的消息,但我不知道如何转换字符串.消息到达时不调用javaDeserializer.

2014-01-19 05:47:20 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:20 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
2014-01-19 05:47:25 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:25 DEBUG TcpNioConnection:324 - Read 26 into raw buffer
2014-01-19 05:47:30 DEBUG TcpNioConnection:380 - localhost:9004:74154fb2-f77c-4036-9142-e756e53a6ac6 Reading...
2014-01-19 05:47:30 DEBUG TcpNioConnection:324 - Read 26 …
Run Code Online (Sandbox Code Playgroud)

java tcp spring-integration

3
推荐指数
1
解决办法
3604
查看次数

标签 统计

java ×2

spring ×1

spring-boot ×1

spring-integration ×1

ssl ×1

tcp ×1