SSL協(xié)議使用不對(duì)稱加密技術(shù)實(shí)現(xiàn)雙方之間信息的安全傳遞??梢詫?shí)現(xiàn)信息傳遞的保密性、完整性,并且會(huì)話雙方能鑒別對(duì)方身份。
與網(wǎng)站建立https連接時(shí),瀏覽器與WEB SERVER之間要經(jīng)過(guò)一個(gè)握手的過(guò)程來(lái)完成身份鑒定與密鑰交換,建立安全連接。過(guò)程是:
1、用戶瀏覽器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務(wù)器
2、服務(wù)器將其SSL版本號(hào)、加密設(shè)置參數(shù)、與session有關(guān)的數(shù)據(jù)以及其它必要信息發(fā)送給瀏覽器,同時(shí)發(fā)給瀏覽器的還有服務(wù)器的證書。如果配置服務(wù)器的SSL需要驗(yàn)證用戶身份,還要發(fā)出請(qǐng)求瀏覽器提供用戶證書。
3、客戶端檢查服務(wù)器證書,如果檢查失敗,提示不能建立SSL連接,如果成功,則繼續(xù)
4、客戶端瀏覽器為本次會(huì)話生成pre-master secret,并將其用服務(wù)器公鑰加密后發(fā)送給服務(wù)器。
5、如果服務(wù)器要求鑒別客戶身份,客戶端還要再對(duì)另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服務(wù)器。
6、如果服務(wù)器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結(jié)束本次會(huì)話。如果檢查通過(guò),服務(wù)器用自己的私鑰解密收到的 pre-master secret,并用它通過(guò)某些算法生成本次會(huì)話的master secret。
7、客戶端與服務(wù)器均使用此master secret生成本次會(huì)話的會(huì)話密鑰(對(duì)稱密鑰)。在雙方SSL握手結(jié)束后傳遞任何消息均使用此會(huì)話密鑰。這樣做的主要原因是對(duì)稱加密比非對(duì)稱加密的運(yùn)算量低一個(gè)數(shù)量級(jí)以上,能夠顯著提高雙方會(huì)話時(shí)的運(yùn)算速度。
8、客戶端通知服務(wù)器此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。
9、服務(wù)器通知客戶端此后發(fā)送的消息都使用這個(gè)會(huì)話密鑰進(jìn)行加密。并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手。
10、本次握手過(guò)程結(jié)束,會(huì)話已經(jīng)建立。雙方使用同一個(gè)會(huì)話密鑰分別對(duì)發(fā)送以及接受的信息進(jìn)行加、解密。
1、生成服務(wù)器端證書文件
可以使用Windows系統(tǒng)或者Linux系統(tǒng)
(1) Windows環(huán)境
條件:已經(jīng)安裝JDK
步驟:
l 進(jìn)入%JAVA_HOME%/bin目錄
l 執(zhí)行命令
keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500
參數(shù)簡(jiǎn)要說(shuō)明:“F:\tomcat.keystore”含義是將證書文件保存在F盤,證書文件名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,默認(rèn)值是90天
l 在命令行填寫必要的參數(shù):
截圖部分說(shuō)明:
A、輸入keystore密碼:此處需要輸入大于6個(gè)字符的字符串
B、“您的名字與姓氏是什么?”這是必填項(xiàng),并且必須是TOMCAT部署主機(jī)的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來(lái)要在瀏覽器中輸入的訪問(wèn)地址
C、“你的組織單位名稱是什么?”、“您的組織名稱是什么?”、“您所在城市或區(qū)域名稱是什么?”、“您所在的州或者省份名稱是什么?”、“該單位的兩字母國(guó)家代碼是什么?”可以按照需要填寫也可以不填寫直接回車,在系統(tǒng)詢問(wèn)“正確嗎?”時(shí),對(duì)照輸入信息,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的信息
D、輸入
l 完成上述輸入后,直接回車則在你在第二步中定義的位置找到生成的文件
(2) Linux環(huán)境
條件:安裝了JDK
步驟:
l 進(jìn)入$JAVA_HOME/bin目錄
l 執(zhí)行命令
./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500
參數(shù)簡(jiǎn)要說(shuō)明:“/etc/tomcat.keystore”含義是將證書文件保存在路徑/usr/local/ac/web/下,證書文件名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,默認(rèn)值是90天
l 在命令行填寫必要的參數(shù):
截圖如下:
截圖部分說(shuō)明:
A、Enter keystore password:此處需要輸入大于6個(gè)字符的字符串
B、“What is your first and last name?”這是必填項(xiàng),并且必須是TOMCAT部署主機(jī)的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來(lái)要在瀏覽器中輸入的訪問(wèn)地址
C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填寫也可以不填寫直接回車,在系統(tǒng)詢問(wèn)“correct?”時(shí),對(duì)照輸入信息,如果符合要求則使用鍵盤輸入字母“y”,否則輸入 “n”重新填寫上面的信息
D、Enter key password for
l 完成上述輸入后,直接回車則在你在第二步中定義的位置找到生成的文件
2、配置TOMCAT服務(wù)器
(1) 如果你是在Windows環(huán)境中生成證書文件,則需要將生成的證書tomcat.keystore拷貝到Tomcat將要引用的位置,假設(shè)tomcat的應(yīng)用證書的路徑是“/etc/tomcat.keystore”,則需要將證書文件拷貝到“etc/”下;如果是在Linux環(huán)境按照上述介紹的步驟生成證書文件的話,此時(shí)證書文件已經(jīng)在“etc/”下。
(2) 配置Tomcat,打開$CATALINA_HOME/conf/server.xml,修改如下,
修改參數(shù)=>
去掉注釋且修改參數(shù)=>
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore" keystorePass="www.gbcom.com.cn"/>
注釋:標(biāo)識(shí)為淡藍(lán)色的兩個(gè)參數(shù),分別是證書文件的位置和
修改參數(shù)=>
(3) 打開$CATALINA_HOME/conf/web.xml,在該文件末尾增加:
SSL
/*
CONFIDENTIAL
3、上述配置完成后,重啟TOMCAT后即可以使用SSL。IE地址欄中可以直接輸入地址不必輸入“http://” 或者 “https://” ;也可以輸入 “http:// ” 會(huì)跳轉(zhuǎn)成為 “https://” 來(lái)登錄
4、注意事項(xiàng):
(1) 生成證書的時(shí)間,如果IE客戶端所在機(jī)器的時(shí)間早于證書生效時(shí)間,或者晚于有效時(shí)間,IE會(huì)提示“該安全證書已到期或還未生效”
(2) 如果IE提示“安全證書上的名稱無(wú)效或者與站點(diǎn)名稱不匹配”,則是由生成證書時(shí)填寫的服務(wù)器所在主機(jī)的域名“您的名字與姓氏是什么?”/“What is your first and last name?”不正確引起的
5、遺留問(wèn)題:
(1)如果AC主機(jī)不能通過(guò)域名查找,必須使用IP,但是這個(gè)IP只有在配置后才能確定,這樣證書就必須在AC確定IP地址后才能生成
(2)證書文件只能綁定一個(gè)IP地址,假設(shè)有10.1.25.250 和 192.168.1.250 兩個(gè)IP地址,在證書生成文件時(shí),如使用了10.1.25.250,通過(guò)IE就只能使用10.1.25.250 來(lái)訪問(wèn)AC-WEB,192.168.1.250是無(wú)法訪問(wèn)AC-WEB的。
參考資料:
http://tianli.blog.51cto.com/190322/90101
http://qixiaopeng.javaeye.com/blog/466298
關(guān)注公眾號(hào)獲取海量視頻
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。