`
chengyu_555
  • 浏览: 35006 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

CSA 实现的SSO单点登录例子

    博客分类:
  • jsp
阅读更多
弄了一下午的cas sso 例子终于成功了,现在将详细步骤叙述一下
下载        
cas-server-3.0.4.zip               http://www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip

cas-client-2.0.11.zip  http://www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip

1、用keytool生成证书:
        keytool -genkey -alias tomcat -keyalg RSA -keystore c:/Tomcat5.5/mykey
说明:
    这里-alias tomcat 是表示生成的这个证书的别名叫tomcat,-keyalg RSA  指的是采用的RSA算法,-keystore c:/Tomcat5.5/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入12456,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。
注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名 由于我是在本机所以是localhost
这里要注意如果不这样写就会报如下异常:
java.io.IOException: HTTPS hostname wrong:  should be <localhost>

2、创建证书后,就导出证书,keytool -export -file c:\cas.cer -alias tomcat -keystore C:\Tomcat5.5\mykey(从C:\Tomcat5.5\mykey里取出证书入到C:\下,如果没有指定,就是在用下目录下C:\Documents and Settings\用户目录名\)

2、server.xml中添加的配置信息:
< Connector port="8443"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="C:\tomcat\mykey(指生成的证书存储的位置)" keystorePass="123456"(上面你输入的那个密码) />

3、把上面那步的(csa.cer)这个证书导入java中的cacerts证书库里?
    开始 >> 运行 >> 输入cmd 进入dos命令行 >>
    再用cd进入到C:\Program Files\Java\jdk1.5.0_05\jre\lib\security这个目录下
    敲入如下命令回车执行
    keytool -import -alias cacerts -keystore cacerts -file C:\cas.cer -trustcacerts
    此时命令行会提示你输入cacerts证书库的密码,
    你敲入changeit就行了,这是java中cacerts证书库的默认密码,
    你自已也可以修改的。
如果报错信息是已经存在tomcat证书,就执行:
  keytool –delete –keystore cacerts
–file C:\cas.cer –alias -trustcacerts

4、重启Tomcat后在地址栏输入:https://localhost:8888 如果配置正确就搞定了,浏览显示的时候提示安装证书(你就选择安装上面导出的那个证书,也可从IE--工具--Internet首选项--内容--证书--然后按提示导入即可)。

 如果是IE的话,首先会弹出一个对话框,提示你证书不是由信任的机构颁发的。这个是很自然的,因为证书是自己生成的。

  单击“查看证书”,单击“安装证书”,在向导种选择“将所有的证书放在下面存储区”,然后单击“浏览”,选择“受信任的根证书颁发机构”。单击确定安装证书。这样IE以后就会认为证书是由受信任的机构颁发的。

  如果不想安装,也可以直接在对话框中单击“是”


5. 部署CAS应用
  解压 cas-server-3.0.4.zip, 提取 \target\cas.war 文件,将 cas.war 文件复制到 TOMCAT 的安装路径 webapps 下,启动 TOMCAT ,检查 CAS 应用是否正常启动。

6.客户端配置
下载cas-client-2.0.11.zip
把 java/lib/casclient.jar考到 你所发布的webapp的WEB-INF/lib下
修改WEB-INF/web.xml 在里面添加过滤器
    <filter>
        <filter-name>CASFilter</filter-name>
        <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
        <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
           <param-value>https://localhost:8443/cas/login</param-value>
        </init-param>
        <init-param>
           <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
           <param-value>https://localhost:8443/cas/proxyValidate</param-value>
        </init-param>
        <init-param>
          <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          <param-value>localhost:8443</param-value>
        </init-param>
    </filter>
   
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

把里面的localhost换成域名
8443换成你所使用的端口


====================================
JDK中keytool常用命令
-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg      指定密钥的算法  
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码
-keypass     指定别名条目的密码
-dname       指定证书拥有者信息 例如:  "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list        显示密钥库中的证书信息      keytool -list -v -keystore sage -storepass ....
-v           显示密钥库中的证书详细信息
-export      将别名指定的证书导出到文件  keytool -export -alias caroot -file caroot.crt
-file        参数指定导出到文件的文件名
-delete      删除密钥库中某条目          keytool -delete -alias sage -keystore sage
-keypasswd   修改密钥库中指定条目口令    keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import      将已签名数字证书导入密钥库  keytool -import -alias sage -keystore sagely -file sagely.crt
             导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。

1.证书的显示
-list
[-v | -rfc] [-alias <alias>]
[-keystore <keystore>] [-storepass <storepass>]
[-storetype <storetype>] [-provider <provider_class_name>]
例如:keytool -list -v -alias RapaServer -keystore cacerts -storepass 12345678
keytool -list -v -keystore d2aapplet.keystore -storepass 12345678 -storetype IAIKKeystore
2.将证书导出到证书文件
例如:keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer
将把证书库 monitor.keystore 中的别名为 monitor 的证书导出到 monitor.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
keytool -export -keystore d2aApplet.keystore -alias RapaServer -file Rapa.cert -storetype IAIKKeystore
3.将keystore导入证书中
这里向Java默认的证书 cacerts导入Rapa.cert
keytool -import -alias RapaServer -keystore cacerts -file Rapa.cert -keystore cacerts
4.证书条目的删除
keytool的命令行参数 -delete 可以删除密钥库中的条目,如: keytool -delete -alias RapaServer -keystore d2aApplet.keystore ,这条命令将 d2aApplet.keystore 中的 RapaServer 这一条证书删除了。
5.证书条目口令的修改
使用 -keypasswd 参数,如:keytool -keypasswd -alias RapaServer -keystore d2aApplet.keystore,可以以交互的方式修改 d2aApplet.keystore证书库中的条目为 RapaServer 的证书。
Keytool -keypasswd -alias RapaServer -keypass 654321 -new 123456 -storepass 888888 -keystore d2aApplet.keystore这一行命令以非交互式的方式修改库中别名为 RapaServer 的证书的密码为新密码 654321,行中的 123456 是指该条证书的原密码, 888888 是指证书库的密码。

分享到:
评论

相关推荐

    PHP 使用TP5.0 实现SSO单点登录

    因为公司要实现SSO单点登录的效果,最近在网上找了一些资料,但是都没有好用的, 所以自己用PHP 使用TP5.0 实现了SSO单点登录,可以跨多个域名。 下载后在本地配置好 A,B,C 3个网站,就可以模拟效果了。

    CAS实现sso单点登录原理

    CAS实现sso单点登录原理,可以方便技术人员理解

    sso单点登录ppt.ppt

    sso单点登录ppt.ppt

    spring+springMvc简单实现SSO单点登录

    利用springMvc 实现的简单的单点登录Demo,内含三个小Mavn项目分别是 1、认证中心SSOServer 2、子系统1SSOClient1 3、子系统2SSOClient2 文章请参考 http://blog.csdn.net/qq_31183297/article/details/79419222

    ssm redis实现sso单点登录

    公司需要做统一的sso单点登录,由于CAS过于重量级和复杂。所以就自己基于springMVC mybatis redis缓存实现了SSO单点登录。mark一下!

    spring security 基于oauth 2.0 实现 sso 单点登录Demo.zip

    spring security 基于oauth 2.0 实现 sso 单点登录Demo 使用 spring security 基于oauth 2.0 实现 sso 单点登录Demo spring boot + spring security + spring security oauth

    sso单点登录源代码

    sso单点登录源代码sso单点登录源代码sso单点登录源代码sso单点登录源代码sso单点登录源代码

    spring boot 实现SSO单点登陆

    spring boot整合spring security 实现SSO单点登陆 完整DEMO. 1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource 127.0.0.1 sso-tmall 127.0.0.1 sso-taobao windows系统的路径在C:\WINDOWS\system...

    基于JWT实现SSO单点登录流程图解

    主要介绍了基于JWT实现SSO单点登录流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    SSO单点登陆解决方案

    一个实现SSO方案的构想SSO单点登陆解决方案

    SSO单点登录

    SSO单点登录

    sso 单点登录例子

    包含两个单点登录的例子,自己收藏学习

    asp.net SSO单点登录例子

    比如我们有个域名叫做:a.com,同时有两个业务系统分别为:app1.a.com和app2.a.com。我们要做单点登录(SSO),需要一个登录系统,叫做:sso.a.com

    SSO单点登录实现与实现原理

    内含SSO单点登录的实现源代码,以及实现原理详解,有需要的可以看看。

    SSO单点登录解决方案

    SSO单点登录解决方案,包括HP灵动单点登录系统演示文件和其他的资料文件

    SSO 单点登录实例

    SSO 单点登录(Single Sign On)的简称, SSO是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    sso单点登录demo

    sso单点登录demo,集成shiro 完美实现单点登录demo,共享session

Global site tag (gtag.js) - Google Analytics