我正在尝试使用self-sigend CA在我的Websphere-Liberty服务器上设置SSL,但我一直收到SSLHandshakeException。我不是SSL专家,所以我可能只是忘了什么。
以下是有关我的设置的一些详细信息:
product = WebSphere Application Server 8.5.5.0 (wlp-1.0.3.20130510-0831)
java.version = 1.7.0_51
os = Windows 8 (6.2; amd64) (en_US)
我设法部署了worklight应用程序中心战,这可以通过浏览器访问。当我尝试通过https访问应用程序中心时,出现以下异常:
[9/1/14 19:07:11:799 EEST] 00000021 com.ibm.ws.channel.ssl.internal.SSLHandshakeErrorTracker E CWWKO0801E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLHandshakeException: no cipher suites in common
我的server.xml中有以下配置
<feature>ssl-1.0</feature>
<keyStore id="defaultKeyStore" password="trasys" />
添加keystore属性后,Websphere会生成一个带有默认证书的密钥库文件(key.jks)。我使用java keytool实用程序删除了证书,并添加了我自己的自签名CA证书。此证书是使用以下openssl命令在cygwin中生成的(如以下stackoverflow票证中所示:Is a signed SSL certificate required for Worklight development?):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
要将证书添加到空密钥库,我使用了以下命令:
keytool -import -trustcacerts -alias mydomain -file certificate.crt -keystore keystore.jks
所以这基本上是我到目前为止所做的,有没有人知道我错过了什么?
答案 0 :(得分:2)
您只能使用您的程序导入公共证书,而不是私钥。您的密钥库中需要私钥 您可以使用以下解决方案:
securityUtility createSSLCertificate
创建证书,如securityUtility command