如何在CAS服务器和客户端的不同计算机上设置ssl证书(自签名)
CAS和客户端在单机上工作正常,如果使用不同的机器则会丢失证书错误。
是否为客户端和服务器计算机提供单个自签名证书?
需要更改任何特定的客户端和服务器设置,例如服务器计算机名称和证书创建的客户端计算机名称
答案 0 :(得分:4)
是否可以添加您获得的异常以及在哪个节点中?
作为一般性建议,请注意:
1)如果在cas客户端和CAS服务器之间使用服务器端的https通信,则必须在客户端JVM机器上安装证书
2)JVM不会(在运行时)接受CN(通用名称)中的ip的自签名证书。
有关详细信息,请参阅https://wiki.jasig.org/display/CASUM/SSL+Troubleshooting+and+Reference+Guide
因此,从您发布的例外情况来看,似乎是下面的情况(引自上面的CAS故障排除链接):
未显示主题替代名称样本Alt名称堆栈跟踪 javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException:没有主题替代名称 目前在大多数情况下,这是主机名/ SSL证书CN不匹配。
这通常发生在签发自签名证书时 localhost放置在通过IP地址访问的计算机上。它 应该注意的是,生成一个带有IP地址的证书 通用名称,例如CN = 192.168.1.1,OU =中间件,dc = vt,dc = edu,不会 在大多数情况下,客户端建立连接是Java。对于 例如,Java CAS客户端在连接到a时会抛出SSL错误 CAS服务器使用包含IP地址的证书进行保护 CN。
您是否已解决使用域名而不是ip更改证书,然后在system truststore for the CAS client和CAS服务器的密钥库中重新安装证书?