CAS单点登录学习笔记三之HTTPS 单向认证方式 服务端和客户端配置

CAS单点登录

[b]概述[/b]

(1)[url=http://blog.csdn.net/tch918/article/details/19930037]CAS简介[/url]
(2)[url=http://www.jasig.org/cas]CAS官网[/url]

[b]环境配置[/b]

[list]
[*]在同一个机器上配置三个虚拟机
[*]windows7_32位
[*]JDK 1.6.0_18
[*]Tomcat 6.0.29
[*]CAS-server-3.4.11
[*]CAS-client-3.2.1
[/list]

[b]配置host[/b]

根据演示需求,用修改hosts 文件的方法添加域名
在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条

127.0.0.1 demo.tch.com ##服务器,即名字与姓氏
127.0.0.1 app1.tch.com ##客户端,即本地服务工程名称
127.0.0.1 app2.tch.com ##客户端,即本地服务工程名称


说明:
(1)demo.tch.com:对应部署cas server的tomcat,这个虚拟域名还用于证书生成
(2)app1.tch.com:对应部署app1的tomcat
(3)app2.tch.com:对应部署app2的tomcat

[b]配置JDK[/b]

[url=http://blog.csdn.net/mazhaojuan/article/details/7468639]JDK配置[/url]

[b]安全证书配置[/b]

[url=http://www.micmiu.com/lang/java/keytool-start-guide/]java keytool证书工具使用小结[/url]

(0)建立文件夹:D:\study\sso\tomcat-cas(将tomcat解压后改名)


[img]http://dl2.iteye.com/upload/attachment/0109/1576/b34c708f-c139-3123-9a12-025a13794eda.jpg[/img]


(1)生成服务端密钥文件并生成证书

a.win+r ,打开 Tomcat的安装路径,复制并粘贴如下命令到控制台中,回车执行

keytool -genkey -alias casserver -keyalg RSA -keysize 1024 -keypass 123456 -keystore ssodemo.keystore -storepass 123456 -validity 365

实现:
[img]http://dl2.iteye.com/upload/attachment/0109/1582/5339ef23-f1e7-3c0c-aa3e-4f295f2f944c.jpg[/img]

说明:

[list]
[*]-keypass 123456 和 -storepass 123456 两个密码要一致,否则下面tomcat 配置https 访问失败
[*]-keystore ssodemo.keystore 生成证书的名称
[*]名字与姓氏:与要访问的域名保持一致,通过在HOST中配置该域名,可通过域名直接访问服务器
[*]最后一步,输入y(YES)
[/list]

命令执行后,查看文件夹,多出了一个证书文件

[img]http://dl2.iteye.com/upload/attachment/0109/1586/3387cf14-3b5b-345e-9c46-feed40e1a3db.jpg[/img]

问题解释:
再次配置时会出现 casserver 已存在的提示,解决方式删除配置过的证书

范式:keytool -delete -alias 指定需删除的别 -keystore 指定keystore – storepass 密码

执行命令:keytool -delete -alias casserver -keystore ssodemo.keystore -storepass 123456

(2)导出证书:
复制并执行如下命令:

keytool -export -alias casserver -storepass 123456 -file ssodemo.cer -keystore ssodemo.keystore


控制台:
[img]http://dl2.iteye.com/upload/attachment/0109/1594/277ed4e1-4d6d-3c11-9179-2f7514d63931.jpg[/img]

文件夹:
[img]http://dl2.iteye.com/upload/attachment/0109/1596/d4c9435e-3b92-3868-84ac-603dd5a89683.jpg[/img]


注意:
[list]
[*]-storepass 123456 为上面生成证书时设置的密码
[*]-file ssodemo.cer 导出的证书名称
[*]保存文件路径中不能包含空格,否则命令不识别
[*]命令输入时,单词之间以空格间隔,否则命令不识别
[/list]

(3)客户端导入证书


keytool -import -trustcacerts -alias casserver -storepass 123456 -file ssodemo.cer -keystore cacerts


控制台

[img]http://dl2.iteye.com/upload/attachment/0109/1598/081b2b97-0410-3ad7-99a5-e2424f755a3c.jpg[/img]

文件夹:

[img]http://dl2.iteye.com/upload/attachment/0109/1600/f58441f1-44ed-33e9-8a7e-06a8f38e3992.jpg[/img]


以上tools工具的使用:
[url=http://dylanxu.iteye.com/blog/1871337]客户端服务器端配置[/url]

问题解释:若提示密码不正确,将密码改为changeit 再试

问题参考:[url=http://blog.csdn.net/shenzhen_mydream/article/details/5662372]keytool工具java.io.IOException: Keystore was tampered with, or password was incorrect 异常的解决办法 [/url]

[b]CAS Server端配置[/b]

(1)配置HTTPS

打开 Tomcat 安装目录 conf\server.xml
找到并修改如下代码
在制作完成密钥文件、证书文件、密钥库文件后即可进行服务端Tomcat的配置。打开$CATALINA_HOME/conf/server.xml文件,注释掉如下代码段:



<Connector port="80"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>



并取消注释<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"…/>代码段


<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="D:/study/sso/tomcat-cas/ssodemo.keystore"
keystorePass="123456"
URIEncoding="UTF-8"

clientAuth="false" sslProtocol="TLS" />
-->


此处参考:[url=http://dylanxu.iteye.com/blog/1871337]CAS单点登录学习笔记四之HTTPS 单向认证方式 服务端和客户端配置[/url]

说明:
[list]
[*]keystoreFile 是创建证书的路径
[*]keystorePass 是创建证书的密码
[*]port一般为8443或443,最常用的是443端口(https默认端口),这样https方式访问的时候可以不加端口号(如:https://sso.demo.com/cas/login);keystoreFile为tomcat目录下的密钥文件;keystorePass为私钥密码;truststoreFile为生成的信任文件,如果此处不指定则默认为$JAVA_HOME/jre/lib/security/cacerts文件;其它属性默认即可
[/list]

注意:若设置为8443端口,要在域名后面添加上端口号
https://demo.tch.com:8443/cas/login

要配置truststoreFile为tomcat下的cacerts文件
另外浏览器使用谷歌浏览,否则登陆https://sso.demo.com/cas/login时无响应
提示是否访问,点击是

[img]http://dl2.iteye.com/upload/attachment/0110/6018/de566aae-8cd0-30c4-a759-f13d50a7f1dd.jpg[/img]

[b]生成客户端密钥库文件[/b]
单向认证的客户端配置只需生成客户端信任文件caserts即可。首先将服务端生成的证书文件(之前生成的casserver.cer文件)复制到$JAVA_HOME/jre/lib/security下,然后打开CMD窗口切换到$JAVA_HOME/jre/lib/security下并执行命令:


keytool -import -trustcacerts -alias casclient -storepass changeit -file ssodemo.cer -keystore cacerts


需要制定ssodemo.cer的具体路径 注意使用/而非\

控制台:

[img]http://dl2.iteye.com/upload/attachment/0109/1606/65130fd5-42fd-3bbb-8586-62e65902e79f.jpg[/img]

文件夹:
[img]http://dl2.iteye.com/upload/attachment/0109/1604/3bd1b8b5-8b61-3df9-920a-12bb8ceac668.jpg[/img]

说明:
(1)JDK JRE security storepass 默认密码 changeit
(2)ssodemo.cer 文件为之前配置的文件,若执行命令时出现找不到文件的错误,仔细检查文件存放路径

配置HOST后

访问:
[url]http://localhost:8081/cas/login[/url]
或通过域名访问
http://demo.tch.com:8081/cas/login

[img]http://dl2.iteye.com/upload/attachment/0109/1673/1454b8be-8b64-35cc-ad3e-c140575a13df.jpg[/img]


博文参考:
[url=http://dylanxu.iteye.com/blog/1871337]CAS单点登录学习笔记四之HTTPS 单向认证方式 服务端和客户端配置[/url]
[url=http://blog.csdn.net/tch918/article/details/19930341] 基于CAS实现单点登录(SSO):实例讲解 [/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值