100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > CAS的安装与配置(一)服务器端配置

CAS的安装与配置(一)服务器端配置

时间:2020-05-29 14:29:58

相关推荐

CAS的安装与配置(一)服务器端配置

一、搭建Java Web服务器环境

CATALINA_HOME = D:\Java\apache-tomcat-6.0.14

安装完毕,启动Tomcat ,在浏览器上 测试 http://localhost:8080/

出现上述界面,表明系统成功搭建。

二、使用Java Keytool工具为系统生成HTTPS证书,并为系统注册

1. 删除已有

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -delete -alias tomcat(随意起的别名) -keystore D:/Java/jdk1.6.0_33/jre/lib/security/cacerts -storepass changeit

2. 生成密匙库

输入密钥密码和相应参数,(注意:第一个参数CN要输入域名,其他参数就随便了),结果是在用户目录中创建了名为server.keystore的密钥文件。

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keystore server.keystore(密钥文件名)

在当前目录下多出一个文件server.keystore

3.导出数字证书

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -export -alias tomcat -keypass changeit -file server.crt -keystore server.keystore

输入keystore密码:changeit

输入上一步中的密码,结果在当前目录生成server.crt密钥文件。(注意:这个文件是要导入客户端的JVM上的)

4.将数字认证导入jre可信任区

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -import -alias tomcat -file server.crt -keypass changeit -keystoreD:/Java/jdk1.6.0_33/jre/lib/security/cacerts

这里的jre地址和tomcat使用的jre必须一致

输入密码(注意:这里的密码不是上面设定的密码,而是changeit),将创建cacerts文件。

5.查看可信证书列表(检查证书是否加入成功)

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -list -keystore D:\Java\jdk1.6.0_33/jre/lib/security/cacerts

6.命令解释(转)

-genkey在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书

-alias产生别名

-keystore指定密钥库的名称(产生的各类信息将不在.keystore文件中

-keyalg指定密钥的算法

-validity指定创建的证书有效期多少天

-keysize指定密钥长度

-storepass指定密钥库的密码

-keypass指定别名条目的密码

-dname指定证书拥有者信息例如:"CN=firstName,OU=org,O=bj,L=bj,ST=gd,C=cn"

-list显示密钥库中的证书信息keytool -list -v -keystore别名-storepass ....

-v显示密钥库中的证书详细信息

-export将别名指定的证书导出到文件keytool -export -alias别名-file文件名.crt

-file参数指定导出到文件的文件名

-delete删除密钥库中某条目keytool -delete -alias别名-keystore sage

-keypasswd修改密钥库中指定条目口令keytool -keypasswd -alias别名-keypass .... -new .... -storepass ... -keystore别名

-import将已签名数字证书导入密钥库keytool -import -alias别名-keystore证书名-file文件名(可以加.crt后缀)

以上是服务器端导入证书,放在tomcat用的jre下的证书库中

三、配置Tomcat的HTTPS服务

在tomcat的server.xml中添加配置信息

<Connector protocol="org.apache.coyote.http11.Http11Protocol"

port="8443" minSpareThreads="5" maxSpareThreads="75"

enableLookups="true" disableUploadTimeout="true"

acceptCount="100" maxThreads="200"

scheme="https" secure="true" SSLEnabled="true"

keystoreFile="C:/Users/shipengzhi/server.keystore" keystorePass="changeit"

truststoreFile="D:/Java/jdk1.6.0_33/jre/lib/security/cacerts"

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

keystorePass="changeit"参数,即为上面几步中涉及到的密 码,keystoreFile=".keystorePath",.keystorePath即为在第一步中生成的文件.keystore的全路径,如:C:/Users/shipengzhi/server.keystore。

绑定hosts

10.1.164.118

启动Tomcat,访问https://localhost:8443/,出现以下界面说明HTTPS配置生效:

四、构建CAS服务器和过滤器

1.部署JA-SIG(CAS)服务器

cas官方网站

/cas

下载最新的服务端CAS Server 3.5.0 Final

解压后将modules下面的cas-server-webapp-3.3.3.war改名为cas.war部署到web服务器,作为单点登录的服务器。

启动Tomcat,访问网址http://localhost:8080/cas/index.jsp或https://localhost:8443,出现以下画面:

输入用户名/密码 :linly/linly(任意两个相同的字窜),点击“登录”,出现以下画面:

表示CAS服务器配置运行成功。

2.为HelloWorldExample程序配置CAS过滤器

访问http://shipengzhi:8080/examples/servlets/servlet/HelloWorldExample,出现以下界面说明应用正常启动:

编辑D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加如下信息:

<!-- ======================== 单点登录开始 ======================== -->

<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置-->

<listener>

<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

</listener>

<!-- 该过滤器用于实现单点登出功能,可选配置。 -->

<filter>

<filter-name>CAS Single Sign Out Filter</filter-name>

<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>CAS Single Sign Out Filter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- 该过滤器负责用户的认证工作,必须启用它 -->

<filter>

<filter-name>CASFilter</filter-name>

<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

<init-param>

<param-name>casServerLoginUrl</param-name>

<param-value>:8443/cas/login</param-value>

<!--这里的server是服务端的IP-->

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://localhost:8080</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CASFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->

<filter>

<filter-name>CAS Validation Filter</filter-name>

<filter-class>

org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>

<init-param>

<param-name>casServerUrlPrefix</param-name>

<param-value>:8443/cas</param-value>

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://localhost:8080</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CAS Validation Filter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- ======================== 单点登录结束 ======================== -->

拷贝cas-client-core-3.2.1.jar,commons-logging-1.1.jar文件到目录D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。

启动Tomcat。

测试使用浏览器登陆以下网址:http://shipengzhi:8080/examples/servlets/servlet/HelloWorldExample,页面将弹出以下认证框,点击“确定”

页面将重定向到JA-SIG的SSO登录认证页面

输入用户名=密码,如:linly/linly,则通过验证,进入应用的入口界面,如下:

细心的用户将发现,此时的URL不再是:

http://shipengzhi:8080/examples/servlets/servlet/HelloWorldExample,

URL的尾端带上了一个ticket参数:

http://linly:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-2-qTcfDrdFb0bWndWgaqZD

到此,JA-SIG(CAS)服务器的初步SSO部署宣告成功。

异常Q&A

1.验证ticket时,抛出异常

avax.servlet.ServletException: .ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

解决办法:

tomact使用的jvm的jre必须和数字认证导入jre可信任区时的jre一样,抛出这个异常就是因为不一样导致的。

2.如何将CAS和应用分布部署在不同的机器?

机器A: 部署CAS服务

机器B: 部署OA应用

机器C: 用户浏览器端

1.由机器A上生成.keystore的证书文件,证书颁发者是机器A的完全域名

2.机器A上用于部署CAS的Tomcat的server.xml文件中定义HTTPS的配置,指向.keystore文件证书

3.从.keystore中导出的凭证文件要copy到机器B上,并导入机器B的JRE环境的证书库中

4.机器B上部署OA的Tomcat必须指定运行在导入凭证JRE环境上,而不是JDK,这点常有人搞错。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。