Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          一、準(zhǔn)備工作
              1). 安裝JDK 1.5 或更高版本, 并配置JAVA_HOME 環(huán)境變量;
              2). 安裝tomcat 6 ;
            
          二、配置過程
              1.生成 server key :
                以命令行方式切換到目錄%tomcat_HOME%,在command命令行輸入如下命令(jdk1.4以上帶的工具):
                keytool -genkey -alias tomcat -keyalg RSA -keypass changit -storepass changit -keystore server.keystore -validity 3600
               
                用戶名輸入域名,如localhost(開發(fā)或測試用)或hostname.domainname(用戶擁有的域名),其它全部以 enter 跳過,最后確認(rèn),
                此時(shí)會在%JAVA_HOME%/bin下生成server.keystore 文件。
               
                注:參數(shù) -validity 指證書的有效期(天),缺省有效期很短,只有90天。
             
              2.將證書導(dǎo)入的JDK的證書信任庫中:
                這步對于tomcat的SSL配置不是必須,但對于CAS SSO是必須的,否則會出現(xiàn)如下錯(cuò)誤:edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator。。。
               
                導(dǎo)入過程分2步,第一步是導(dǎo)出證書,第二步是導(dǎo)入到證書信任庫,命令如下:
                keytool -export -trustcacerts -alias tomcat -file server.cer -keystore  server.keystore -storepass changit
               
                keytool -import -trustcacerts -alias tomcat -file server.cer -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
               
                如果有提示,輸入Y就可以了。
             
             其他有用keytool命令(列出信任證書庫中所有已有證書,刪除庫中某個(gè)證書):
             
             keytool -list -v -keystore %JAVA_HOME%/jre/lib/security/cacerts
             keytool -delete -trustcacerts -alias tomcat  -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changit

            3.配置tomcat :
             修改%TOMCAT_HOME%"conf"server.xml,以文字編輯器打開,查找這一行:
             xml 代碼
            
             將之后的那段的注釋去掉,并加上 keystorePass及keystoreFile屬性。
             注意,tomcat不同版本配置是不同的:
             tomcat4.1.34配置:
             xml 代碼     <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"             port="8443" enableLookups="true" scheme="https" secure="true"             acceptCount="100"             useURIValidationHack="false" disableUploadTimeout="true"             clientAuth="false" sslProtocol="TLS"               keystoreFile="server.keystore"               keystorePass="changit"/>  tomcat5.5.9配置:
             
              
             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="server.keystore"    
                        keystorePass="changit"/>  
             tomcat5.5.20配置(此配置同樣可用于tomcat6.0):
             
             xml 代碼
               
             <Connector protocol="org.apache.coyote.http11.Http11Protocol"    
                                  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="server.keystore"    
                        keystorePass="changit"/>  
             tomcat6.0.10配置:
             
             xml 代碼
             <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"  
                        port="8443" minSpareThreads="5" maxSpareThreads="75"  
                        enableLookups="true" disableUploadTimeout="true"    
                        acceptCount="100"  maxThreads="200"  
                        scheme="https" secure="true" SSLEnabled="true"  
                        clientAuth="false" sslProtocol="TLS"  
                        keystoreFile="server.keystore"    
                        keystorePass="changit"/>  
             tomcat6支持3種,請參考以下文檔:
             http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
             
            4.驗(yàn)證配置
             訪問 https://localhost:8443/
             <connector protocol="org.apache.coyote.http11.Http11NioProtocol"></connector>
             
            5. 如果默認(rèn)想用HTTPS 方式進(jìn)行網(wǎng)站, 可以作如下配置:
            一般Tomcat默認(rèn)的SSL端口號是8443,但是對于SSL標(biāo)準(zhǔn)端口號是443,
            這樣在訪問網(wǎng)頁的時(shí)候,直接使用https而不需要輸入端口號就可以訪問,如https://localhost
            
             1).non-SSL HTTP/1.1 Connector定義的地方,一般如下:
                  <Connector port="80" maxHttpHeaderSize="8192"  scheme="https"
                          maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
                          enableLookups="false" redirectPort="443" acceptCount="100"
                          connectionTimeout="20000" disableUploadTimeout="true" />  
            
                將其中的redirectPort端口號改為:443

             2).SSL HTTP/1.1 Connector定義的地方,修改端口號為:443,如下:
                 <Connector    
                 port="443" maxHttpHeaderSize="8192"
                 maxThreads="150" minSpareThreads="25"
                 maxSpareThreads="75"
                 enableLookups="false"
                 disableUploadTimeout="true"
                 acceptCount="100" scheme="https"
                 secure="true"
                 clientAuth="false" sslProtocol="TLS"
                  SSLEnabled="true"  
                 keystoreFile="e:/server.keystore"
                 keystorePass="changit" />
              3).AJP 1.3 Connector定義的地方,修改redirectPort為443,如下:  
              <Connector port="8009"
                    enableLookups="false" redirectPort="443" protocol="AJP/1.3" />
                             
                             
             如上配置好后便可以用 Https://localhost 方式直接訪問,無需輸入端口號;

          三、參考資料
            1. Keytool使用指南:
              http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/keytool.html
           
            2. tomcat-ssl配置指南:
              http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
              http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

          posted on 2010-01-13 08:29 seal 閱讀(6589) 評論(1)  編輯  收藏 所屬分類: web服務(wù)器

          評論

          # 有幾個(gè)路徑寫錯(cuò)了 2012-12-28 17:43 于之剝柚
          1.生成的server.keystore不是在%JAVA_HOME%/bin下,
          而是在你執(zhí)行keytool -genkey的當(dāng)前目錄下。

          2.執(zhí)行導(dǎo)入命令 keytool -import 記住先備份原有的然后移除了再執(zhí)行  回復(fù)  更多評論
            

          主站蜘蛛池模板: 邓州市| 周至县| 河源市| 会东县| 西畴县| 四川省| 水富县| 海伦市| 贺州市| 塔城市| 左权县| 哈尔滨市| 大石桥市| 巢湖市| 北安市| 图木舒克市| 太康县| 西昌市| 都匀市| 仁布县| 沈丘县| 武乡县| 阿瓦提县| 江津市| 镇江市| 景洪市| 准格尔旗| 汨罗市| 克拉玛依市| 镇平县| 大关县| 呼玛县| 宁津县| 昭苏县| 凉城县| 阜宁县| 湖口县| 如东县| 枣庄市| 庐江县| 惠来县|