在Vert.x中设置密码套件

时间:2019-04-06 15:21:14

标签: ssl https vert.x

我正在尝试使用Vert.x Web通过HTTPS与客户端进行通信。我可以从浏览器访问REST服务,但是在运行服务器和测试程序时,出现以下故障:

I/O Failure: Received fatal alert: handshake_failure

我相信我理解为什么会发生此故障,因为我使用-Djavax.net.debug = ssl:handshake:verbose选项运行了两个应用程序(我的客户端程序是使用OkHTTP的Java应用程序)。尝试从我的测试客户端访问REST服务时,服务器会提供以下调试消息:

                 ...snip...
%% Initialized:  [Session-2, SSL_NULL_WITH_NULL_NULL]
vert.x-eventloop-thread-1, fatal error: 40: no cipher suites in common
javax.net.ssl.SSLHandshakeException: no cipher suites in common
%% Invalidated:  [Session-2, SSL_NULL_WITH_NULL_NULL]
vert.x-eventloop-thread-1, SEND TLSv1 ALERT:  fatal, description = handshake_failure
vert.x-eventloop-thread-1, WRITE: TLSv1 Alert, length = 2
vert.x-eventloop-thread-1, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLHandshakeException: no cipher suites in common
vert.x-eventloop-thread-1, called closeOutbound()
vert.x-eventloop-thread-1, closeOutboundInternal()
vert.x-eventloop-thread-1, called closeInbound()
                 ...snip...

我了解到,握手之前,两个JVM应该有一个共同的密码套件。根据调试输出,我的服务器似乎未列出其可用套件。它列出了一些不可用和已禁用的套件,但是我看不到可用套件的列表。另一方面,客户端向服务器发送以下套件:

 Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA]

我需要使我的Vert.x服务器可以使用这些套件之一。不幸的是,在查看Vert.x文档时,我没有看到任何提供有关如何执行此操作的信息。

是否可以为Vert.x服务器提供可与我的客户端一起使用的密码套件?

0 个答案:

没有答案