Jetty 9 无法使用 OpenSSL 生成的自签名证书

Jetty 9 cant work with self-signed certificate that generated by OpenSSL

我想在 jetty-distribution-9.2.9.v20150224

上配置 SSL

我按照http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html配置了SSL并生成了证书

问题是: 如果我使用 Keytool 生成的密钥库:

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

并将 ssl 和 https 模块配置为 start.ini,Jetty 工作正常。

但是,浏览器无法信任从密钥库中提取的证书。所以我想使用 Openssl

创建自签名证书

我的Openssl版本是0.9.8,我按照以下步骤生成了keystore:

openssl genrsa -des3 -out server.key

openssl req -new -key server.key -out server.csr

openssl x509 -req -days 365 -in mn-server.csr -signkey server.key -out server.crt

keytool -import -trustcacerts -alias server -file server.crt -keystore truststore.keystore

但是,这个truststore.keystore不行。 Http 正常工作,但我无法访问 https。没有特殊异常抛出,查看8443端口时,已经初始化

我是否缺少一些码头配置?或者生成的证书生成不正确?


调试后,我看到这个没有共同的密码套件异常

%%Initialized:  [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1811075214-27, fatal error: 40: no cipher suites in common
javax.net.ssl.SSLHandshakeException: no cipher suites in common
%% Invalidated:  [Session-1, SSL_NULL_WITH_NULL_NULL]
qtp1811075214-27, SEND TLSv1.2 ALERT:  fatal, description = handshake_failure
qtp1811075214-27, WRITE: TLSv1.2 Alert, length = 2
qtp1811075214-27, fatal: engine already closed.  Rethrowing    javax.net.ssl.SSLHandshakeException: no cipher suites in common

我使用的签名算法是 SHA1withRSA ,我的 Java 版本是 "1.8.0_25"

通过将spring-ws-core版本升级到2.2.x

解决了

而且我也升级openssl到1.0.1k