我正在尝试在我的客户端应用程序和WebSphere服务器之间建立SSL连接。我的服务器证书支持以下关键用法:
数字签名,证书签名,离线CRL签名,CRL 签名
但是当我尝试连接它时会引发异常:
初始IOR失败: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL_CLIENT_SOCKET:JSSL0080E: javax.net.ssl.SSLHandshakeException - 客户端和服务器不能 协商所需的安全级别。原因: sun.security.validator.ValidatorException:KeyUsage不允许密钥 encipherment vmcid:IBM次要代码:E07已完成:否
所以我想它希望启用key encipherment
密钥用法。有办法克服这个问题吗?如果没有,并且SSL要求启用此密钥使用,有人可以请我指出一个可靠的规范,以便我可以说服发出我的证书的人,在启用此密钥使用情况下重新发布它吗?我是否还需要启用key agreement
?
谢谢。
答案 0 :(得分:1)
由于证书具有“证书签名”密钥用法,因此您不应将其直接用作服务器证书。相反,您应该创建自己的服务器证书(使用SSL的正确密钥用法)并使用颁发给您的证书签署此证书。