(cas单点登陆)实验报错 java.security.cert.CertificateNo subject alternative names present
网上搜看了很多帖子,这个问题是由于ip跳转的时候转换失败造成的,ssl加密传输的时候有个验证,不通过造成的,具体详情请查询材料,
网上各种方法都试过了也没有解决问题,
最后再次审查发现是自己的配置写错了,
应用服务的web.xml中,我的认证server配置如下:
<!-- 该过滤器负责用户的认证工作,必须启用它 -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<!--这里为CAS服务器的地址,必须使用所创建的域名,不然验证证书不通过 -->
<param-value>https://192.168.1.108:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<!--这里的server是服务端的IP-->
<param-value>http://192.168.1.115:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<!--这里为CAS服务器的地址,必须使用所创建的域名,不然验证证书不通过 -->
<param-value>https://192.168.1.108:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://192.168.1.115:8080</param-value>
</init-param>
</filter>
解决方法,把上述ip改为域名即可,我在设置密钥的时候使用的是:www.zhn.com,
windows配置文件hosts配置 192.168.1.108 www.zhn.com
以上配置完成后,启动服务,实验通过