日期:2014-05-16  浏览次数:20723 次

CAS单点登录应用+数据库验证

转载:http://www.linuxso.com/architecture/19446.html

一. 基础知识点
1.CAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署
在与 servlet2.3 兼容的 Web 服务器上,另外,由于 Client 与 CAS Server 之间的交互采用?
Https 协议,因此部署 CAS Server 的服务器还需要支持 SSL 协议。

?

2.HTTPS的全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),
是在http协议基础上增加了使用SSL加密传送信息的协议。它是一个安全通信通道,它基于HTTP开发,
用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换。
HTTPS和HTTP的区别:?
https协议需要到ca申请证书,一般免费证书很少,需要交费。?
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议?
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。?
http的连接很简单,是无状态的.
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全.

?

3.如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议,其配置过程和配置方法可以
参考 Tomcat 的相关文档。不过在生成证书的过程中,会有需要用到主机名的地方,CAS 建议
不要使用 IP 地址,而要使用机器名或域名。
配置本地虚拟域名:修改C:\Windows\System32\drivers\etc\hosts,
添加内容如下:127.0.0.1 sso.wsria.com
这样在访问sso.wsria.com的时候其实是访问的127.0.0.1也就是本机.

?

4.证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;
以下演示是用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去
证书提供商去购买,证书认证一般都是由VeriSign认证,
中文官方网站:http://www.verisign.com/cn/

?

二.证书应用

1.用JDK自带的keytool工具生成证书:
命令:keytool -genkey -alias?wsria -keyalg RSA -keystore d:/keys/wsriakey

Keytool使用举例:
命令:keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore?
-dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN"?
-keypass changeit -storepass -validity 180
参数说明:?
-genkey表示要创建一个新的密钥?
-dname表示密钥的Distinguished Names,?
CN=commonName (域名:建议使用配置的域名,也可使用localhost)
OU=organizationUnit?
O=organizationName?
L=localityName?
S=stateName?
C=country?
Distinguished Names表明了密钥的发行者身份?
-keyalg使用加密的算法,这里是RSA?
-alias密钥的别名?
-keypass私有密钥的密码,这里设置为changeit
-keystore 密钥保存在D:盘目录下的mykeystore文件中?
-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出?
-validity该密钥的有效期为 180天 (默认为90天)

?

2.导出证书
命令:D:\keys>keytool -export?-file?d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey
输入密码为上面生成证书时输入的密码(keystore)

?

3.为客户端的JVM导入证书
命令:keytool -import -keystore "%JAVA_HOME%/jre/lib/security/cacerts"?
-file D:/keys/wsria.crt -alias wsria