如何为CAS和客户端设置SSL(不同的机器)

时间:2012-02-17 15:35:42

标签: single-sign-on cas

如何在CAS服务器和客户端的不同计算机上设置ssl证书(自签名)

  • CAS服务器:Linux,Tomcat,jdk6
  • 客户端:windows,Tomcat,jdk6
  • 证书:自签名(keytool)
  • 环境:发展

CAS和客户端在单机上工作正常,如果使用不同的机器则会丢失证书错误。

是否为客户端和服务器计算机提供单个自签名证书?

需要更改任何特定的客户端和服务器设置,例如服务器计算机名称和证书创建的客户端计算机名称

1 个答案:

答案 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服务器的密钥库中重新安装证书?