Tomcat配置成https后,如過使用的是自己的證書,登陸首頁時,總是提示證書安全問題,網上的很多資料有描述,但比較復雜,找了幾個配置不成功,現在描述一個比較簡單的方法。
生成證書的腳本
#!/bin/bash
if [ $# = 1 ] ; then
IP=$1
fi
echo "https trust ip: $IP "
if [ -d gen ]; then
rm -r -f gen
fi
mkdir -p gen
KEY=gen/demo.keystore
PASSWD=demo
if [ -f $KEY ]; then
rm -f $KEY
fi
#server
keytool -genkey -v -alias demo-keyalg RSA -keypass $PASSWD -keystore $KEY -storepass $PASSWD -validity 3650 -dname "CN=$IP,OU=demo,L=beijing,ST=china,C=cn"
#client
keytool -keystore $KEY -keypass $PASSWD -storepass $PASSWD -export -alias demo -file gen/demo.cer
如上的demo.keystore是供tomcat使用的證書
demo.cer是供客戶端使用的證書
其中的IP,必須是提供服務的web服務地址,否則瀏覽器登陸時仍會出現證書安全問題
tomcat配置
Conf/server.xml的配置
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="demo.keystore" keystorePass="demo"
URIEncoding="UTF-8"
/>
注意clientAuth使用僅服務端認證,否則使用雙向的認證,更復雜一些,網上有相關資料
瀏覽器證書導入
demo.cer 導入到瀏覽器的客戶端中,Windows下導入的步驟:
IE/Chrome: 雙擊demo.cer ,導入到“受信任的根證書頒發機構”下
FireFox:工具/選項/高級 下點擊“查看證書”,在“證書機構”選項卡中導入demo.cer ,然后選擇“IP“的證書項,點擊“編輯信任”,選擇信任即可
以上設置完成后,使用https://IP 訪問web服務器,此時就不會再提示“證書信任”問題了