配置支持SSL的Tomcat(轉載)

發表于:2007-07-04來源:作者:點擊數: 標簽:
標題 配置支持SSL的Tomcat dchg2000(原作) 關鍵字 SSL Tomcat Openssl keytool 一、配置環境 1.1 Tomcat簡介 Tomcat是ApacheJakarta的子項目之一,作為一個優秀的 開源 web應用 服務器 ,全面支持jsp1.2以及servlet2.3規范。因其技術先進、 性能 穩定,而且
標題 配置支持SSL的Tomcat dchg2000(原作)
    
     關鍵字 SSL Tomcat Openssl keytool
    
    
    
     一、配置環境
     1.1 Tomcat簡介
    Tomcat是ApacheJakarta的子項目之一,作為一個優秀的開源web應用服務器,全面支持jsp1.2以及servlet2.3規范。因其技術先進、性能穩定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的web應用服務器。

    
     1.2 SSL(Server Socket Layer)簡介
    在網絡上信息在源-宿的傳遞過程中會經過其它的計算機。一般情況下,中間的計算機不會監聽路過的信息。但在使用網上銀行或者進行信用卡交易的時候有可能被監視,從而導致個人隱私的泄露。由于Internet和Intranet體系結構的原因,總有某些人能夠讀取并替換用戶發出的信息。隨著網上支付的不斷發展,人們對信息安全的要求越來越高。因此Netscape公司提出了SSL協議,旨在達到在開放網絡(Internet)上安全保密地傳輸信息的目的,這種協議在WEB上獲得了廣泛的應用。之后IETF(www.ietf.org)對SSL作了標準化,即RFC2246,并將其稱為TLS(Transport LayerSecurity),從技術上講,TLS1.0與SSL3.0的差別非常微小。
    
     1.3 SSL工作原理
    SSL協議使用不對稱加密技術實現會話雙方之間信息的安全傳遞??梢詫崿F信息傳遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的http協議,我們在與網站建立SSL安全連接時使用https協議,即采用https://ip:port/的方式來訪問。
    
     當我們與一個網站建立https連接時,我們的瀏覽器與Web Server之間要經過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下:
    
     用戶瀏覽器將其SSL版本號、加密設置參數、與session有關的數據以及其它一些必要信息發送到服務器。
     服務器將其SSL版本號、加密設置參數、與session有關的數據以及其它一些必要信息發送給瀏覽器,同時發給瀏覽器的還有服務器的證書。如果配置服務器的SSL需要驗證用戶身份,還要發出請求要求瀏覽器提供用戶證書。
     客戶端檢查服務器證書,如果檢查失敗,提示不能建立SSL連接。如果成功,那么繼續。
     客戶端瀏覽器為本次會話生成pre-master secret,并將其用服務器公鑰加密后發送給服務器。
     如果服務器要求鑒別客戶身份,客戶端還要再對另外一些數據簽名后并將其與客戶端證書一起發送給服務器。
     如果服務器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的pre-master secret,并用它通過某些算法生成本次會話的master secret。
     客戶端與服務器均使用此master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數量級以上,能夠顯著提高雙方會話時的運算速度。
     客戶端通知服務器此后發送的消息都使用這個會話密鑰進行加密。并通知服務器客戶端已經完成本次SSL握手。
     服務器通知客戶端此后發送的消息都使用這個會話密鑰進行加密。并通知客戶端服務器已經完成本次SSL握手。
     本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分別對發送以及接受的信息進行加、解密。
     1.4 所需軟件包
     Tomcat 4.0.2
     用途:Web Server。
     下載:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/
     JSSE 1.0,2
     用途:用來產生Tocmcat使用的秘鑰對(keystore)。
     下載: http://java.sun.com/products/jsse/
     Openssl 0.9.9.6
     用途:用來產生CA證書、簽名并生成IE可導入的PKCS#12格式私鑰。
     下載:http://www.openssl.org/
     二 配置步驟
     2.1 建立自己的CA證書
     1.在openssl的apps目錄下建立自己的CA目錄,例如:mageCA
    
     mkdir mageCA
    
     2.生成CA密鑰
    
     openssl genrsa -out mageCA/ca-key.pem 1024
    
     genrsa [產生密鑰命令] –out[密鑰文件輸出路徑] 1024 [密鑰位數]
    
     3.生成待簽名的證書
    
     openssl req -new -out mageCA/ca-req.csr -key mageCA/ca-key.pem
    
     req[產生證書命令]-new[新生成]-out[證書文件輸出路徑]-key[私鑰文件路徑]
    
     4.用CA私鑰自簽名
    
     openssl x509 -req -in mageCA/ca-req.csr -out mageCA/ca-cert.pem -signkey mageCA/ca-key.pem -days 365
    
    x509[簽發x509證書命令]-req[輸入待簽發證書]-in[輸入待簽發證書文件路徑]-out[產生x509證書文件輸出路徑]-signkey[自簽發密鑰文件路徑]-days[證書有效期]–CA[簽發跟證書]-Cakey[根證書密鑰文件]–Cacreateserial[創建序列號]
    
     [注] 將自動生成的ca-key.srl文件拷貝到創建的CA目錄下.。
    
     2.2 配置Tomcat 4.X
     2.2.1 建立服務器證書
     [注] 在本文中用符號"%JDK_HOME%"來表示JDK的安裝位置,用符號"%TCAT_HOME%" 表示Tomcat的安裝位置。
    
     1. 建立工作目錄
    
     在%JDK_HOME%的bin目錄下建立自己的server目錄,例如:server
    
     mkdir server
    
     2. 生成server密鑰對
    
    %JDK_HOME%/bin/keytool -genkey -alias tomcat_server -validity 365-keyalg RSA -keysize 1024 -keypass changeit -storepass changeit -dname"cn=localhost, ou=department, o=company, l=Beijing, st=Beijing, c=CN"-keystore server/server_keystore
    
    -genkey[產生密鑰對]-alias[密鑰對別名]-validity[密鑰有效期]-keyalg[密鑰算法參數]-keysize[密鑰位數]-keypass[密鑰保護密碼]-storepass[存儲密碼]-dname[別名相關附加信息]-keystore[密鑰存儲文件路徑]
    
     [注] -alias后的tomcat_server是密鑰對的名字可替換為自己需要的名字;
    
     -keypass與-storepass后的changeit為保護密碼必須6位,將其替換為你的密碼即可;
    
     -dname為包含的server信息。其中cn是服務器的名字一定要與WEB服務器中設置的一樣。
    
     3. 生成待簽名證書
    
    %JDK_HOME%/bin/keytool -certreq -alias tomcat_server -sigalg MD5withRSA-file server/server.csr -keypass changeit -keystoreserver/server_keystore -storepass changeit
    
     -certreq[產生待簽名證書]-alias[證書別名]-sigalg[證書算法參數]-file [產生文件輸出路徑]-keypass[密鑰保護密碼]-keystore[存儲文件路徑]-storepass[存儲密碼]
    
     4. 用CA私鑰簽名
    
    openssl x509 -req -in server/server.csr -out server/server-cert.pem -CAmageCA/ca-cert.pem -CAkey mageCA/ca-key.pem -days 365
    
     [注] 先將生成的server.csr文件ftp到linux上openssl的目錄下的server子目錄中,ftp的傳輸模式應設為bin模式,以下同。
    
     2.2.2 將CA根證書和服務器證書導入Tomcat
     1. 導入CA根證書
    
     將CA根證書(ca-cert.pem)ftp到Java工作目錄下的ca子目錄中
    
    %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit-alias my_ca_root -file ca/ca-cert.pem -keystore%JDK_HOME%/jre/lib/security/cacerts
    
     -import[導入命令]-v –trustcacerts[導入信任證書] –storepass[存儲密碼]-alias[證書別名]-file[證書文件路徑]-keystore[導入文件路徑]
    
     [注] 此處的-storepass為默認的“changeit”。-alias為CA根證書的別名。
    
     2. 導入服務器證書
    
     將服務器證書(server-cert.pem)ftp到Java工作目錄下的server子目錄中。
    
    %JDK_HOME%/bin/keytool -import -v -trustcacerts -storepass changeit-alias tomcat_server -file server/server-cert.pem -keystoreserver/server_keystore
    
     [注] 此時的-storepass為生成證書時輸入密碼。-alias為服務器證書的別名。
    
     3. 查看證書
    
     查看CA證書
    
     keytool -list -keystore %JDK_HOME%/jre/lib/security/cacerts
    
     查看服務器證書
    
     keytool -list -keystore server/server_keystore
    
     2.2.3 修改Tomcat的配置文件
     修改conf目錄下server.xml文件找到以下內容去掉其注釋并修改。
    
     <!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
    
     <Connector className="org.apache.catalina.connector.http.HttpConnector"
    
     port="8443" minProcessors="5" maxProcessors="75"
    
     enableLookups="false"
    
     aclearcase/" target="_blank" >cceptCount="10" debug="0" scheme="https" secure="true">
    
     <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
    
     clientAuth="true" protocol="TLS"
    
     keystoreFile="c:/jakarta-tomcat-4.0-b1/conf/server_keystore" keystorePass="780608"
    
     />
    
     </Connector>
    
     然后把文件server/ server_keystore復制到目錄%TCAT_HOME%\conf\下
    
     2.3 配置IE客戶端
     2.3.1 建立Client證書
     1. openssl的apps目錄下建立自己的Client目錄,例如:client
    
     2. 生成Client密鑰對
    
     openssl genrsa -out client/ client –key.pem 1024
    
     3. 生成待簽名的證書
    
     openssl req -new -out client/ client-req.csr -key client/ client-key.pem
    
     4. 用CA私鑰簽名
    
    openssl x509 -req -in client/client-req.csr -out client/client-cert.pem-signkey c lient/client-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem-CAcreateserial -days 365
    
     5. 生成Client端可以導入的個人證書
    
     openssl pkcs12 -export -clcerts -in client/client-cert.pem -inkey client/client-key.pem -out client/client.p12
    
     pkcs12[生成PKS12格式證書命令]-export[導出文件]-clerts[僅導出client證書]-in[輸入的client證書文件路徑]-inkey[client證書密鑰文件路徑]-out[導出PKS12格式文件路徑]
    
     2.3.2 將CA證書與client證書導入IE
     1. 導入CA根證書
    
     將已經ftp到Java工作目錄下ca子目錄中的ca-cert.pem改名為ca-cert.cer;
    
     在client端的IE中使用<工具>,< Internet選項>,<內容>,<證書>,<導入>,把我們生成的CA根證書導入,使其成為用戶信任的CA。
    
     2. 導入client證書
    
     將client證書(client.p12)ftp到Client端,把client.p12導入到client端的IE中作為client證書,導入過程同上
    
     三 用IE瀏覽器使用SSL協議訪問Tomcat
     1. 執行%TCAT_HOME%/bin/startup.bat啟動Tomcat 4.x;
    
     2. 在IE瀏覽器的地址欄中輸入https://localhost:8443,如果前面的操作都正確,應該可以看到Tomcat的歡迎頁面。同時狀態欄上的小鎖處于閉合狀態,表示您已經成功地與服務器建立了要求客戶端驗證的SSL安全連接。
    

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97