在tomcat 6中配置ssl雙向認證是相當容易的,本文將介紹如何使用jdk的keytool來為tomcat配置雙向ssl認證。
系統需求:
jdk 5.0
tomcat 6.0.16
第一步:為伺服器生成證書
使用keytool為tomcat生成證書,假定目標機器的網域名稱是「localhost」,keystore檔案存放在「c:\tomcat.keystore」,口令為「password」,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg rsa -keystore tomcat.keystore
如果tomcat所在伺服器的網域名稱不是「localhost」,應改為對應的網域名稱,如「www.sina.com.cn」,否則瀏覽器會彈出警告視窗,提示使用者證書與所在域不匹配。在本地做開發測試時,應填入「localhost」
第二步:為客戶端生成證書
keytool -genkey -v -alias mykey -keyalg rsa -storetype pkcs12 -keystore my.p12 -dname "cn=mykey,ou=cn,o=cn,l=cn,st=cn,c=cn" -storepass 123456 -keypass 123456
對應的證書庫存放在「c:\my.p12」,客戶端的cn可以是任意值。稍候,我們將把這個「my.p12」證書庫匯入到ie和firefox中。
第三步:讓伺服器信任客戶端證書
由於是雙向ssl認證,伺服器必須要信任客戶端證書,因此,必須把客戶端證書新增為伺服器的信任認證。由於不能直接將pkcs12格式的證書庫匯入,我們必須先把客戶端證書匯出為乙個單獨的cer檔案,使用如下命令:
keytool -export -alias mykey -keystore my.p12 -storetype pkcs12 -rfc -file my.cer
keytool -import -v -file my.cer -keystore tomcat.keystore
通過list命令檢視伺服器的證書庫,我們可以看到兩個輸入,乙個是伺服器證書,乙個是受信任的客戶端證書:
第四步:配置tomcat伺服器
開啟tomcat根目錄下的/conf/server.xml,找到如下配置段,修改如下:
其中,clientauth指定是否需要驗證客戶端證書,如果該設定為「false」,則為單向ssl驗證,ssl配置可到此結束。如果clientauth設定為「true」,表示強制雙向ssl驗證,必須驗證客戶端證書。如果clientauth設定為「want」,則表示可以驗證客戶端證書,但如果客戶端沒有有效證書,也不強制驗證。
第五步:匯入客戶端證書
如果設定了clientauth="true",則需要強制驗證客戶端證書。雙擊「c:\my.p12」即可將證書匯入至ie:
匯入證書後,即可啟動tomcat,用ie進行訪問。如果需要用firefox訪問,則需將證書匯入至firefox:
tomcat配置ssl雙向認證
接上篇tomcat ssl單向認證 url 本文在單向認證的基礎上完成雙向認證配置。1 使用以下命令生成客戶端證書,並將此證書安裝到客戶端 此證書請安裝到個人目錄下 keytool genkey v alias client1 keyalg rsa storetype pkcs12 keysize ...
tomcat6配置ssl雙向認證
步驟如下 1 生成伺服器端證書 keytool genkey keyalg rsa dname cn localhost,ou sango,o none,l china,st beijing c cn alias server keypass password keystore server.jks...
ssl雙向認證
ssl雙向認證 ca.key 根證書的私鑰 ca.crt 根證書的簽名證書 server.key,server.crt client.key,client.crt 1 openssl ca.key,ca.crt 2 openssl server.key server.csrserver.crt 3 ...