posts - 37,  comments - 53,  trackbacks - 0
          今天花了一個下午的時間,終于完成的cas配置的一次完整的運行。cas前世今生我就不介紹了,有興趣的朋友谷歌或是百度一下就可以有很詳細的了解了,重點記錄一下今天的配置過程和遇到的問題及解決方法。
          環境:瀏覽器(ie6.0,windows xp)
              cas server 在一臺Linux服務器,cas client在另外一臺linux服務器
              應用服務器為tomcat5.5.26
          初步的配置實用過程參考了http://www.aygfsteel.com/yida/archive/2007/04/03/55466.html的描述,各位亦可以訪問阿木的blog。整理如下:
          1.請下載到cas的官方網站下載cas-server(我用的是3.2)和cas-client(2.0.11),tomcat5.5.26
              cas的官方網站:http://www.ja-sig.org/products/cas/
          2.安裝cas-server,我們假定安裝cas-server的服務器為server1
              (1)請在server1服務器上安裝好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置環境變量JAVA_HOME
              (2)將cas-server-3.2-release.zip解壓,將moudels目錄下cas-server-webapp-3.2.war拷貝到tomcat的webapps目錄下,修        改名稱為cas.war.
              (3)生成server1的安全證書:
                
          keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
                 (4)在server1
          配置https
                       在
          $CATALINA_HOME/conf/server.xml里修改為一下配置
                        <Connector port="8443" maxHttpHeaderSize="8192"
                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups="false" disableUploadTimeout="true"
                         acceptCount="100" scheme="https" secure="true"
                         clientAuth="false" sslProtocol="TLS"
                         keystoreFile="/path/keystore-file" keystorePass="your-password"
                        />
                    (5)導出server1的證書,
          用來給所有需要用到的客戶端導入
                         
          keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file
                   
          (6)將導出的證書上傳的client1服務器上。
                    (7)啟動server1上的tomcat,檢驗cas配置是否成功,訪問http://ip:8443/cas/login,如果能看到cas的登錄頁面則表示配                置成功。
          3.配置 cas-client,我們以tomcat下自帶的servlet-example為例子進行說明
              (1)
          請在client1服務器上安裝好jdk1.5或以上版本的jdk,tomcat5.5.26,并配置環境變量JAVA_HOME
            (2)
          將cas-client-2.0.11.zip解壓,把java/lib/casclient.jar拷貝到client1服務器上的
                      webapps/servlets-examples/WEB-INF/lib目錄下(如果沒有就建一個)

            (3)在要使用CAS的客戶端client1里設置(以servlets-examples這個APP為例),我們使用ServletFilter(CAS client里提供            的)來實現SSO的檢查,修改servlets-examples/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://your.cas.server.name(eg:server1):port/cas/login</param-value>
                          </init-param>
                          <init-param>
                              <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
                              <param-value>https://your.cas.server.name(eg:server1):port/cas/proxyValidate</param-value>
                          </init-param>
                          <init-param>
                              <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
                              <param-value>your.client.server.name(eg:client1):port</param-value>
                          </init-param>
                      </filter>
                      <filter-mapping>
                          <filter-name>CASFilter</filter-name>
                              <url-pattern>/servlet/*</url-pattern>
                      </filter-mapping>
                 (4)
          在客戶端的JVM里導入信任的SERVER的證書(根據情況有可能需要管理員權限)
                      
          keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias my-alias-name
                       此時需要輸入密碼,默認密碼為changeit
          通過以上配置,基本完成cas-server和cas-client的配置,但是還有以下問題需要注意和解決
          由于cas的證書需要域名才能正確的進行認證信息的交互,不支持ip,如果server和client在同一臺機器上,可以使用localhost,如果像我們上面描述的三臺服務器這樣的環境,使用localhost或者ip是不能正常運行的。如果使用ip,運行時會拋出
          HTTPS hostname wrong 的錯誤,解決的方法如下:
          假設server1的ip為:192.168.10.1,client1的ip為192.168.10.2,開發機器(xp)的ip為:192.168.10.3
          在server1和client1上設置本機的域名映射:
          vi /etc/hosts 添加以下行
          192.168.10.1 cas.server
          在開發機器(xp)下,在C:\WINDOWS\system32\drivers\etc目錄下,編輯hosts文件,添加以下行
          192.168.10.1 cas.server

          重新生成cas-sever的服務器端的證書,在開始問“你的名字”或“DName”的時候,必須填寫你服務器所在域名(cas.server)
          然后重新到處服務器器端的證書,并將其導入到client1服務器的jvm

          最后修改
          修改servlets-examples/WEB-INF/web.xml中關于cas過濾器的配置:請將your.cas.server.name(eg:server1)修改為cas.server即可。重新啟動server1和client1的服務器上的tomcat就可正常運行。


          ttp://client1:8080/servlets-examples/servlet/HelloWorldExample
          系統會自動跳轉到一個驗證頁面,隨便輸入一個相同的賬號,密碼,嚴正通過之后就會訪問
          到真正的HelloWorldExample這個servlet了


          posted on 2008-03-25 18:05 雪地孤鴻 閱讀(4733) 評論(0)  編輯  收藏 所屬分類: sso

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(17)

          隨筆分類

          隨筆檔案

          文章檔案

          blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 保康县| 淅川县| 固原市| 武冈市| 聂荣县| 屯留县| 松滋市| 大田县| 固始县| 宁安市| 林州市| 利辛县| 古田县| 通河县| 广安市| 万宁市| 浙江省| 卓资县| 河东区| 黔西| 丽江市| 菏泽市| 博客| 扬中市| 娱乐| 调兵山市| 六安市| 开阳县| 合肥市| 西安市| 库车县| 辽阳市| 吉首市| 安宁市| 阿克苏市| 和顺县| 稷山县| 阿图什市| 青铜峡市| 崇信县| 佛冈县|