以上工具的安裝過程可以參考自帶的幫助,本文就不再詳細描述了。
4.2 建立自己的ca
4.2.1 建立工作目錄
mkdir ca
4.2.2 生成ca私鑰以及自簽名根證書
4.2.2.1 生成ca私鑰
openssl genrsa -out ca/ca-key.pem 1024
4.2.2.2 生成待簽名證書
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
4.2.2.3 用ca私鑰進行自簽名
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 365
4.3 設定tomcat 4.x
在本文中用符號"%jdk_home%"來表示jdk的安裝位置,用符號"%tcat_home%" 表示tomcat的安裝位置。
4.3.1建立工作目錄
mkdir server
4.3.2 生成server端證書
4.3.2.1 生成keypair
%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
4.3.2.2 生成待簽名證書
%jdk_home%/bin/keytool -certreq -alias tomcat_server -sigalg md5withrsa -file server/server.csr -keypass changeit -keystore server/server_keystore -storepass changeit
4.3.2.3 用ca私鑰進行簽名
openssl x509 -req -in server/server.csr -out server/server-cert.pem -ca ca/ca-cert.pem -cakey ca/ca-key.pem -days 365
4.3.2.4 匯入信任的ca根證書到jsse的預設位置(%jdk_root %/jre/security/cacerts)
%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
4.3.2.5 把ca簽名後的server端證書匯入keystore
%jdk_home%/bin/keytool -import -v -trustcacerts -storepass changeit -alias tomcat_server -file server/server-cert.pem -keystore server/server_keystore
4.3.2.6 檢視server端證書
keytool -list -keystore %jdk_home%/jre/lib/security/cacerts
keytool -list -keystore server/server_keystore
4.3.3 修改server.xml使tomcat支援ssl
首先找到以下內容,去掉對其的注釋。然後參照紅色部分修改。如果配置tomcat不驗證客戶身份,可以設定
然後把檔案server/server_keystore複製到目錄%tcat_home%/conf/下。
4.4 在ie中安裝個人證書
4.4.1 建立工作目錄
mkdir client
4.4.2 生成client私鑰並用ca私鑰簽名
4.4.2.1 生成client私鑰
openssl genrsa -out client/client-key.pem 1024
4.4.2.2 生成待簽名證書
openssl req -new -out client/client-req.csr -key client/client-key.pem
4.4.2.3 用ca私鑰進行簽名
openssl x509 -req -in client/client-req.csr -out client/client.crt -signkey client/client-key.pem
-ca ca/ca-cert.pem -cakey ca/ca-key.pem -cacreateserial -days 365
4.4.2.4 生成client端的個人證書
因為jsse1.0.2沒有完全實現了對pkcs#12格式檔案的操作(只能讀取,不能輸出),所以在這裡需要用openssl製作client端的個人證書(包含私鑰)。
openssl pkcs12 -export -clcerts -in client/client.crt -inkey client/client-key.pem -out client/client.p12
4.4.2.5 安裝信任的根證書
把ca/ca-key.pem改名為ca/ca-key.cer,在client端的ie中使用"工具 ' internet選項 ' 內容 ' 證書 ' 匯入"把我們生成的ca根證書匯入,使其成為使用者信任的ca。
4.4.3 安裝個人證書
把client.p12匯入到client端的ie中作為個人證書,匯入過程同4.4.2.5。
4.5 用ie瀏覽器使用ssl協議訪問tomcat
4.5.1 啟動tomcat 4.x
執行%tcat_home%/bin/startup.bat啟動tomcat 4.x
4.5.2 用ie訪問tomcat 4.x
在ie瀏覽器的位址列中輸入https://localhost:8443,如果前面的操作都正確的話,應該可以看到tomcat的歡迎頁面。同時狀態列上的小鎖處於閉合狀態,表示您已經成功地與伺服器建立了要求客戶端驗證的ssl安全連線。
5 結論
以上我們實現了為tomcat 4.x配置要求客戶端驗證的ssl的全過程。對於其它型別的伺服器,例如apache,netscape enterprise server, websphere,weblogic等,一般只是在伺服器端儲存證書的方式略有不同,但它們的原理都是類似的,配置時可以在本文中辦法的基礎上做出相應的調整。
參考資料
tomcat ssl configuration how-to
ssl3.0規範
description of the secure sockets layer (ssl) handshake (q257591)
keytool - key and certificate management tool
openssl使用手冊
配置Tomcat 4 x 使用SSL
4.1 用到的軟體包 1 tomcat 4.0.2 用途 web server。2 jsse 1.0,2 用途 用來產生tocmcat使用的秘鑰對 keystore 如果jdk是1.4以上版本,就不需要安裝此軟體 3 openssl 0.9.9.6 用途 用來產生ca證書 簽名並生成ie可匯入的pk...
Tomcat 4種發布專案方式
tomcat部署web應用的方式總結,常見的有以下四種 這個 發布方式,可能對 spring 任務排程重複執行 有關係.1 使用控制台部署 訪問http localhost 8080,並通過tomcat manager登入,進入部署介面即可。2 利用tomcat自動部署 3 修改server.xml...
Tomcat4的資料庫連線池配置
本文主要介紹tomcat4.1.19這兩個版本下資料庫連線池的配置,及程式對連線池的jndi查詢,並提供相應 測試 最後指出配置及應用過程中的常見問題及解決方法。一 tomcat簡介 tomcat是apache jakarta的子專案之一,是sun公司推薦的jsp servlet容器。作為一款優秀的...