標籤:tomcat構建https雙向認證
第一步:為伺服器產生認證
# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500
(參數簡要說明:“/etc/tomcat.keystore”含義是將認證檔案儲存在路徑/usr/local/ac/web/下,認證檔案名稱是tomcat.keystore ;“-validity 36500”含義是認證有效期間,36500表示100年,預設值是90天)
第二步:為用戶端產生認證
為瀏覽器產生認證,以便讓伺服器來驗證它。為了能將認證順利匯入至IE和Firefox,認證格式應該是PKCS12,因此,使用如下命令產生:
keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore /home/mykey.p12
雙擊mykey.p12檔案,即可將認證匯入至瀏覽器(用戶端)。
第三步:讓伺服器信任用戶端認證
由於是雙向SSL認證,伺服器必須要信任用戶端認證,因此,必須把用戶端認證添加為伺服器的信任認證。由於不能直接將PKCS12格式的認證庫匯入,必須先把用戶端認證匯出為一個單獨的CER檔案,使用如下命令:
keytool -export -alias mykey -keystore /home/mykey.p12 -storetype PKCS12 -storepass password -rfc -file /home/mykey.cer
將該檔案匯入到伺服器的認證庫,添加為一個信任認證:
keytool -import -v -file /home/mykey.cer -keystore /home/tomcat.keystore
通過list命令查看伺服器的認證庫
keytool -list -keystore tomcat.keystore
第四步:讓用戶端信任伺服器憑證
由於是雙向SSL認證,用戶端也要驗證伺服器憑證,因此,必須把伺服器憑證添加到瀏覽的“可信任的根憑證授權單位”。由於不能直接將keystore格式的認證庫匯入,必須先把伺服器憑證匯出為一個單獨的CER檔案,使用如下命令:
keytool -keystore tomcat.keystore -export -alias tomcat -file tomcat.cer
雙擊tomcat.cer檔案,按照提示安裝認證,將認證填入到“可信任的根憑證授權單位”。
第五步:配置Tomcat伺服器
開啟Tomcat根目錄下的/conf/server.xml,找到如下配置段,修改如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="test.keystore" keystorePass="123456"
truststoreFile="test.keystore" truststorePass="123456" />
屬性說明:
· clientAuth:設定是否雙向驗證,預設為false,設定為true代表雙向驗證
· keystoreFile:伺服器憑證檔案路徑
· keystorePass:伺服器憑證密碼
· truststoreFile:用來驗證用戶端認證的根憑證,此例中就是伺服器憑證
· truststorePass:根憑證密碼
第六步:測試
在瀏覽器中輸入:
https://localhost:8443/,會彈出選擇用戶端認證介面,點擊“確定”,會進入tomcat首頁,地址欄後會有“鎖”表徵圖,表示本次會話已經通過HTTPS雙向驗證,接下來的會話過程中所傳輸的資訊都已經過SSL資訊加密。
操作命令:
# keytool -genkey -alias tomcat -keyalg RSA -keystore /root/zhengshu/tomcat.keystore -validity 36500
# keytool -genkey -alias tomcat -keyalg RSA -keystore /root/zhengshu/tomcat.keystore -validity 36500
# keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore /root/zhengshu/mykey.p12 -validity 36500
# keytool -export -alias mykey -keystore /root/zhengshu/mykey.p12 -storetype PKCS12 -storepass password -rfc -file /root/zhengshu/mykey.cer
# keytool -import -v -file /root/zhengshu/mykey.cer -keystore /root/zhengshu/tomcat.keystore
# keytool -list -keystore tomcat.keystore
# keytool -keystore tomcat.keystore -export -alias tomcat -file tomcat.cer
tomcat構建HTTPS雙向認證