啰嗦几句:证书是单点登陆认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程因为是演示因此就本身用JDK自带的keytool工具生成证书;若是之后真正在产品环境中使用确定要去证书提供商去购买,证书认证通常都是由VeriSign认证,
中文官方网站:http://www.verisign.com/cn/
html
命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakeyjava
无图不给力,有图有真相:mysql
具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是sso.wsria.com,其实这个域名是不存在的,可是我为了演示因此虚拟了这个域名,技巧在于修改C:\Windows\System32\drivers\etc\hosts,添加内容以下:web
127.0.0.1 sso.wsria.com算法
这样在访问sso.wsria.com的时候实际上是访问的127.0.0.1也就是本机spring
严重提醒:提示输入域名的时候不能输入IP地址sql
命令:D:\keys>keytool -export -file d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey数据库
来点颜色:apache
至此导出证书完成,能够分发给应用的JDK使用了,接下来说解客户端的JVM怎么导入证书
命令:keytool -import -keystore D:\tools\jdk\1.6\jdk1.6.0_20\jre\lib\security\cacerts -file D:/keys/wsria.crt -alias wsria
来点颜色瞧瞧:
特别说明:D:\tools\jdk\1.6\jdk1.6.0_20\jre\lib\security — 是jre的目录;密码仍是刚刚输入的密码。
至此证书的建立、导出、导入到客户端JVM都已完成,下面开始使用证书到Web服务器中,本教程使用tomcat。
说是应用起始作的事情就是启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议,为何加密我就不用啰嗦了吧……
准备好一个干净的tomcat,本教程使用的apache-tomcat-6.0.29
打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果以下:
参数说明:
好了,到此Tomcat的SSL启用完成,如今你能够启动tomcat试一下了,例如本教程输入地址:https://sso.wsria.com:8443/
打开的是:
好的,那么咱们点击“继续浏览此网站(不推荐)。 ”,如今进入Tomcat目录了吧,若是是那么你又向成功迈进了一步。
OK,接下来要配置CAS服务器了。
你成功了吗?若是没有成功请再检查以上步骤!
上面的初体验仅仅是简单的身份验证,实际应用中确定是要读取数据库的数据,下面咱们来进一步配置CAS服务器怎么读取数据库的信息进行身份验证。
首先打开tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml文件,配置的地方以下:
在文件的末尾以前加入以下代码:
每一个Filter的功能我就很少说了,都有注释的,关键要解释一下AutoSetUserAdapterFilter的做用和原理.
查看完整的web.xml请猛击这里(Google code)
CAS服务端(cas-server)的界面只能在测试的时候用一下,真正系统上线确定须要定制开发本身的页面,就想网易和CSDN的统一认证平台同样,全部子系统的认证都经过此平台来转接,你们能够根据他们的页面本身定制出适合所属应用或者公司的界面;简单介绍一下吧,复制cas\WEB-INF\view\jsp\default\ui的一些JSP文件,每个文件的用途文件名已经区分了,本身修改了替换一下就能够了。
例如:
登陆界面:casLoginView.jsp
登陆成功:casGenericSuccess.jsp
登出界面:casLogoutView.jsp
花了一下午时间终于写完了,总共十项也算完美了。
如今看来起始利用CAS实现单点登陆其实不难,不要畏惧,更不要排斥!
本教程后面的代码部分均来自本博客的wsria-demo项目分支wsria-demo-sso
和本教程相关资料下载: