zoukankan      html  css  js  c++  java
  • tomcat sso 配置

    源: http://www.oecp.cn/hi/single/blog/349 

    为了实现单点登录,做了个CAS SSO单点登录实例,经过反复的琢磨和修改终于成功了,现将CAS SSO单点登录实例详细步骤共享出来,供大家参考。 

    首先要先下载 
    www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip 
    www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip 

    CAS SSO单点登录实例详细步骤: 

    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.5mykey(从C:Tomcat5.5mykey里取出证书入到C:下,如果没有指定,就是在用下目录下C:Documents and Settings用户目录名) 

    3、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: omcatmykey(指生成的证书存储的位置)" keystorePass="123456"(上面你输入的那个密码) /> 

    4、把上面那步的(csa.cer)这个证书导入java中的cacerts证书库里? 
        开始 >> 运行 >> 输入cmd 进入dos命令行 >> 
        再用cd进入到C:Program FilesJavajdk1.5.0_05jrelibsecurity这个目录下 
        敲入如下命令回车执行 
        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 

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

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

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

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


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

    7.客户端配置 
    下载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 是指证书库的密码。 

    CAS SSO单点登录实例就到这里了,希望对大家有帮助!

  • 相关阅读:
    Hadoop学习入门
    node.js学习一——什么是node.js
    判断投递失败原因方法
    MySQL慢查询(一)
    jmeter5.1.1 打印OOM的问题
    Jmeter ForEach Controler、IF Controller、switch Controller
    Jmeter5.1.1 NON GUI下线程数可传参
    在JMeter压测 控制交易占比
    Linux下安装配置Jmeter5.1, 并执行jmx文件
    jmeter 生成报告 --- 如果已经生成jtl文件,可运行如下命令:jmeter -g test.jtl -o ./output
  • 原文地址:https://www.cnblogs.com/azhqiang/p/4724089.html
Copyright © 2011-2022 走看看