<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tomcat 配置 SSL

    筆者:何鋼


    一、 配置環境


    1.1? tomcat 簡介


    tomcat apache jakarta 的子項目之一,作為一個優秀的開源 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 layer security ),從技術上講, tls1.0 ssl3.0
    .3? ssl 工作原理

    ssl協議使用不對稱加密技術實現會話雙方之間信息的安全傳遞。可以實現信息傳遞的保密性、完整性,并且會話雙方能鑒別對方身份。不同于常用的http協議,我們在與網站建立ssl安全連接時使用https協議,即采用https://ip:port/的方式來訪問。


    當我們與一個網站建立https連接時,我們的瀏覽器與web server之間要經過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接。具體過程如下:



    1. 用戶瀏覽器將其 ssl 版本號、加密設置參數、與 session 有關的數據以及其它一些必要信息發送到服務器。
    2. 服務器將其 ssl 版本號、加密設置參數、與 session 有關的數據以及其它一些必要信息發送給瀏覽器,同時發給瀏覽器的還有服務器的證書。如果配置服務器的 ssl 需要驗證用戶身份,還要發出請求要求瀏覽器提供用戶證書。
    3. 客戶端檢查服務器證書,如果檢查失敗,提示不能建立 ssl 連接。如果成功,那么繼續。
    4. 客戶端瀏覽器為本次會話生成 pre-master secret ,并將其用服務器公鑰加密后發送給服務器。
    5. 如果服務器要求鑒別客戶身份,客戶端還要再對另外一些數據簽名后并將其與客戶端證書一起發送給服務器。
    6. 如果服務器要求鑒別客戶身份,則檢查簽署客戶證書的 ca 是否可信。如果不在信任列表中,結束本次會話。如果檢查通過,服務器用自己的私鑰解密收到的 pre-master secret ,并用它通過某些算法生成本次會話的 master secret
    7. 客戶端與服務器均使用此 master secret 生成本次會話的會話密鑰 ( 對稱密鑰 ) 。在雙方 ssl 握手結束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數量級以上,能夠顯著提高雙方會話時的運算速度。
    8. 客戶端通知服務器此后發送的消息都使用這個會話密鑰進行加密。并通知服務器客戶端已經完成本次 ssl 握手。
    9. 服務器通知客戶端此后發送的消息都使用這個會話密鑰進行加密。并通知客戶端服務器已經完成本次 ssl 握手。
    10. 本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分別對發送以及接受的信息進行加、解密。

      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/
      • genrsa [ 產生密鑰命令 ] ╟out [ 密鑰文件輸出路徑 ] 1024 [ 密鑰位數 ]


        3. 生成待簽名的證書


        openssl req -new -out mageca/ca-req.csr -key mageca/ca-key.pem


        req[ 產生證書命令 ]-new[ 新生成 ]-out[ 證書文件輸出路徑 ]-key[ 私鑰文件路徑]


        4. ca 私鑰自簽名


        ? ??????????? 配置步驟


        2.1? 建立自己的 ca 證書


        1. openssl apps 目錄下建立自己的 ca 目錄,例如: mageca


        mkdir mageca


        2. 生成 ca 密鑰


        openssl genrsa -out mageca/ca-key.pem 1024

      • 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 -keystore server/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 -ca mageca/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 -keystore server/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"


    ?????? ?????? acceptcount="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 安全連接。


    ?


    posted on 2006-07-18 16:40 liujg 閱讀(755) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    boddiy

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产99在线|亚洲| 一级午夜免费视频| 亚洲AV网站在线观看| a国产成人免费视频| 中文字幕乱码系列免费| 亚洲专区先锋影音| 在线观看免费国产视频| a级毛片免费播放| 亚洲国产精品无码久久久秋霞1| 亚洲人成人无码网www国产| 性xxxxx大片免费视频| 亚洲国产欧美国产综合一区| 亚洲国产精品一区二区成人片国内| 两性刺激生活片免费视频 | 久久国产精品免费| 久久狠狠爱亚洲综合影院| 亚洲人成无码网站久久99热国产| 亚洲香蕉免费有线视频| 一级毛片试看60分钟免费播放| 亚洲乱码在线视频| 亚洲中文字幕第一页在线| 精品久久久久国产免费| 精品视频一区二区三区免费| 国产精品亚洲AV三区| 亚洲精品中文字幕乱码影院| 久久久久亚洲精品中文字幕| 成年美女黄网站色大免费视频| 久久中文字幕免费视频| 欧亚一级毛片免费看| 国产 亚洲 中文在线 字幕| 亚洲国产高清视频| 中文字幕专区在线亚洲| 国产精品国产自线拍免费软件| 日本免费网站视频www区| 中国国语毛片免费观看视频| 天天综合亚洲色在线精品| 亚洲制服丝袜在线播放| 久久久久久亚洲精品成人| 亚洲VA中文字幕不卡无码| 亚洲免费在线观看| 伊在人亚洲香蕉精品区麻豆|