单点登录配置问题

因为最近在搭建cas服务,遇到了一些问题,在网上查了一下资料,问题解决了,记录一下这些信息:

 

 

cas sso配置大致步骤:

1.生成服务器证书;

keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600

 

2.导出证书命令

keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit

 

3.证书导入JDK的信任证书库中

keytool -import -trustcacerts -alias tomcat -file server.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

 

4.修改tomcat的配置文件 /conf/server.xml (/为tomcat根目录)

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="D:\apache-tomcat-7.0.14\server.keystore"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />

访问https://localhost:8443/出现安全证书问题就说明配置成功了。

 

sso解决方案遇到的问题:

1.生成证书时填写名字和姓氏时要填 localhost 或者是自己的计算机名。

2.按照 keytool -genkey -alias sjc -keyalg RSA -keystore c:/store/mykey来生成证书时必须先创建c:/store文件夹,否则不能生成证书。

3.导入JDK的信任证书库中时,如果JDK安装在Program Files下,cmd命令就会返回不能找到 Files ...文件,看了下网上的说法,都说要在路径名上加引号,为了保险起见,我还是重装了一下JDK,反正就一会的事。

4.JDK的信任证书库的路径是是JAVA_HOME的jre目录下,而不是跟JDK同级的jre目录下的。

5.按照keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc来导入JDK中时,密码是默认的changeit,而不是之前设置的密码。

6.最后的问题,也是最大的问题,前面的证书生成、导出、导入都已经完成之后,还是不能打开https://localhost:8443/。 参照网上的做法,

a.查看Host文件,c:\windows\system32\drivers\etc\hosts,打开hosts这个文件,看看127.0.0.1和localhost是不是在一行;

b.查看局域网设置,是否用了代理服务器上网,选中“对于本地址不使用代理服务器”。

我一一试了,发现都是无用的,这两种设置本来就都是符合的。

后来我又查看了tomcat的日志信息,发现端口8080和8009都是正常的,而新释放的端口8443产生了错误信息:

Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"] ...

单点登录配置问题

又搜索了一下,很多关于8080端口被占用的问题也会报出这种错误,那只需要改一下端口号就行了,可是我这8443端口不大可能被占用吧。

接着搜索,最后终于发现了有牛人说要把server.xml中的下面一段注销掉,不然就会报出上面的错误:

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

注销,重启tomcat,打开https://localhost:8443/,搞定。

文章转自:http://www.cnblogs.com/hamfy/archive/2012/07/31/2616805.html

你可能感兴趣的:(cas)