具有新SSL证书的Java错误的1024位DH参数

时间:2016-10-31 21:26:01

标签: java apache authentication ssl

我使用运行EZProxy软件的服务器,这是一个类似Apache的服务器,代理网络活动,并且通常被学术图书馆用来验证校外用户对图书馆资源的认证。对于我的机构,EZProxy作为伪CAS服务器运行,用于运行DSpace的单独服务器,DSpace是一个基于Java的文档存储库软件。用户使用EZproxy对DSpace进行身份验证,EZproxy以类似CAS的方式将身份验证信息传递给DSpace客户端。

我们之前遇到过设置问题,我们发现这与我们编码的大于1024位的证书有关,我们通过生成DH参数并将它们附加到证书和中介according to these instructions来解决这个问题。 ,效果很好。现在我们有了一个新的安全证书。我安装了新证书,使用

生成了新的DH参数
openssl dhparam 1024

将DH参数附加到新安装的证书中,就像我之前一样,并重新启动EZProxy服务器。但是,当我激活新证书和DH参数时,我在DSpace中遇到了同样的错误:

javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate   
DH keypair

我想我需要更清楚地了解握手期间生成密钥对时会发生什么。是否有可能在DSpace / Java服务器上缓存某些内容?当我们之前对此进行故障排除时,我们的DSpace管理员会多次重置我们的CAS身份验证设置配置,我们将在非工作时间尝试这些配置,但我只是想从概念上理解为什么会产生影响。

documentation about Diffie-Hellman看起来,当设置这种类型的握手时,在服务器之间传递共享密钥,但是当我们第一次使用它时,我们从未在DSpace上安装任何东西方 - 我们只是重置了几次身份验证配置。

在初始设置EZProxy服务器作为CAS身份验证源时,DSpace服务器是否可以缓存来自DH参数的信息?我在生成DH参数并将它们附加到我的证书时做错了 - 是否需要执行另一个步骤来清除附加到旧证书的旧DH参数?为什么我不能将 DH参数与新证书一起使用?我试过了,发生了同样的错误 - 无法生成DH密钥对。但是,如果我将证书切换回旧证书 - 包括附加到x509证书和中介的旧DH密钥对 - 身份验证再次起作用。

感谢您提供任何问题排查建议!

1 个答案:

答案 0 :(得分:0)

这已经解决了。解决方案是将DH参数直接附加到位于EZProxy应用程序的/ ssl目录中的ssl cert文件,并将它们附加到管理SSL下的EZProxy Admin中显示的证书。将参数附加到证书时,找到活动证书的编号(例如,00000015.crt,并添加参数,其中必须包括BEGIN DH PARAMETERS和END DH PARAMETERS行。保存并重新启动EZProxy,你应该是好的去吧。