CAS客戶端和服務器配置https證書


關於如何生成https證書可以看這篇文章:

java生成Https證書,及證書導入的步驟和過程

 下面整理cas如何整合https:

cas服務器端部署(TLS[https])

1.生成證書:

參照java生成Https證書,及證書導入的步驟和過程

導出該證書,是為了給客戶端使用。

2.修改服務器端的 127.0.0.1為域名

修改域名的文件在:C:\WINDOWS\system32\drivers\etc\ hosts

以下是一個example,這里我們修改域名為【sso.wsria.com】:

127.0.0.1       sso.wsria.com

3.修改cas\WEB-INF\deployerConfigContext.xml

修改dataSource標簽,配置數據源。

注:本例中我們是以oracle為例,lib中也只有oracle的驅動,如果想配置其他數據庫,不但需要配置該數據源還需要把相應的驅動jar包放到lib中。

客戶端配置(TLS[https])

1.修改客戶端的 127.0.0.1 為域名,修改方式與服務器端一致,但是域名不能與服務器端相同,因為服務器端為sso.wsria.com,那么我們配置本地的域名為sso.wsria.cn。

2.導入證書

該證書指的是,剛剛從服務器段導出的證書。

沒有特殊要求的話,一般將該證書導入到 系統環境變量中 指定的jdk中,如果Tomcat指定了jdk,那么將證書導入到指定的jdk中。

keytool -import -keystore C:\Java\jdk1.5.0_22\jre\lib\security\cacerts -file D:\signleLogin\wsria.crt -alias wsria

注:C:\Java\jdk1.5.0_22\jre\lib\security\cacerts 路徑包含空格的話,需要用””包起來,即:

C:\Program Files\Java\jdk1.5.0_22\jre\lib\security\cacerts

“C:\Program Files\Java\jdk1.5.0_22\jre\lib\security\cacerts”

3.修改客戶端tomcat/conf/server.xml

增加1個標簽:

<Connector port="8453" protocol="HTTP/1.1" SSLEnabled="true"

               maxThreads="150" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS"

       keystoreFile="E:/signleLogin/wsriakey"

       keystorePass="changeit"/>

這里:keystoreFile="E:/signleLogin/wsriakey" 指向本地證書的物理位置

4.修改客戶端tomcat/conf/web.xml

<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

http自動跳轉轉https

5.在Tomcat項目中修改WEB-INF/web.xml中https的鏈接

<!-- ========================單點登錄開始 ======================== -->
<!--用於單點退出,該過濾器用於實現單點登出功能,可選配置 -->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<!--該過濾器用於實現單點登出功能,可選配置。 -->
<filter>
<filter-name>CAS Single Sign OutFilter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign OutFilter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://portal.szlh.gov.cn/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://localhost.szlh.gov.cn</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/web/*</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>https://portal.szlh.gov.cn/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://localhost.szlh.gov.cn</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<!-- 該過濾器負責實現HttpServletRequest請求的包裹, 比如允許開發者通過HttpServletRequest的getRemoteUser()方法獲得SSO登錄用戶的登錄名,可選配置。 -->
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>
org.jasig.cas.client.util.HttpServletRequestWrapperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<!-- 該過濾器使得開發者可以通過org.jasig.cas.client.util.AssertionHolder來獲取用戶的登錄名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 -->
<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<!-- ========================單點登錄結束 ======================== -->

 

 

完~

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM