SSL協定使用不對稱加密技術實作雙方之間資訊的安全傳遞。可以實作資訊傳遞的保密性、完整性,并且會話雙方能鑒别對方身份。
與網站建立https連接配接時,浏覽器與WEB SERVER之間要經過一個握手的過程來完成身份鑒定與密鑰交換,建立安全連接配接。過程是:
1、使用者浏覽器将其SSL版本号、加密設定參數、與session有關的資料以及其它一些必要資訊發送到伺服器
2、伺服器将其SSL版本号、加密設定參數、與session有關的資料以及其它必要資訊發送給浏覽器,同時發給浏覽器的還有伺服器的證書。如果配置伺服器的SSL需要驗證使用者身份,還要送出請求浏覽器提供使用者證書。
3、用戶端檢查伺服器證書,如果檢查失敗,提示不能建立SSL連接配接,如果成功,則繼續
4、用戶端浏覽器為本次會話生成pre-master secret,并将其用伺服器公鑰加密後發送給伺服器。
5、如果伺服器要求鑒别客戶身份,用戶端還要再對另外一些資料簽名後并将其與用戶端證書一起發送給伺服器。
6、如果伺服器要求鑒别客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任清單中,結束本次會話。如果檢查通過,伺服器用自己的私鑰解密收到的 pre-master secret,并用它通過某些算法生成本次會話的master secret。
7、用戶端與伺服器均使用此master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結束後傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數量級以上,能夠顯著提高雙方會話時的運算速度。
8、用戶端通知伺服器此後發送的消息都使用這個會話密鑰進行加密。并通知伺服器用戶端已經完成本次SSL握手。
9、伺服器通知用戶端此後發送的消息都使用這個會話密鑰進行加密。并通知用戶端伺服器已經完成本次SSL握手。
10、本次握手過程結束,會話已經建立。雙方使用同一個會話密鑰分别對發送以及接受的資訊進行加、解密。
1、生成伺服器端證書檔案
可以使用Windows系統或者Linux系統
(1) Windows環境
條件:已經安裝JDK
步驟:
l 進入%JAVA_HOME%/bin目錄
l 執行指令
keytool -genkey -alias tomcat -keyalg RSA -keystore F:\tomcat.keystore -validity 36500
參數簡要說明:“F:\tomcat.keystore”含義是将證書檔案儲存在F盤,證書檔案名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,預設值是90天
l 在指令行填寫必要的參數:
截圖部分說明:
A、輸入keystore密碼:此處需要輸入大于6個字元的字元串
B、“您的名字與姓氏是什麼?”這是必填項,并且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将來要在浏覽器中輸入的通路位址
C、“你的組織機關名稱是什麼?”、“您的組織名稱是什麼?”、“您所在城市或區域名稱是什麼?”、“您所在的州或者省份名稱是什麼?”、“該機關的兩字母國家代碼是什麼?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“正确嗎?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的資訊
D、輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一緻,設定其它密碼也可以
l 完成上述輸入後,直接回車則在你在第二步中定義的位置找到生成的檔案
(2) Linux環境
條件:安裝了JDK
l 進入$JAVA_HOME/bin目錄
./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天
截圖如下:
A、Enter keystore password:此處需要輸入大于6個字元的字元串
B、“What is your first and last name?”這是必填項,并且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你将來要在浏覽器中輸入的通路位址
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?”可以按照需要填寫也可以不填寫直接回車,在系統詢問“correct?”時,對照輸入資訊,如果符合要求則使用鍵盤輸入字母“y”,否則輸入 “n”重新填寫上面的資訊
D、Enter key password for <tomcat>,這項較為重要,會在tomcat配置檔案中使用,建議輸入與keystore的密碼一緻,設定其它密碼也可以
2、配置TOMCAT伺服器
(1) 如果你是在Windows環境中生成證書檔案,則需要将生成的證書tomcat.keystore拷貝到Tomcat将要引用的位置,假設tomcat的應用證書的路徑是“/etc/tomcat.keystore”,則需要将證書檔案拷貝到“etc/”下;如果是在Linux環境按照上述介紹的步驟生成證書檔案的話,此時證書檔案已經在“etc/”下。
(2) 配置Tomcat,打開$CATALINA_HOME/conf/server.xml,修改如下,
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改參數=>
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
去掉注釋且修改參數=>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat.keystore" keystorePass="www.gbcom.com.cn"/>
注釋:辨別為淡藍色的兩個參數,分别是證書檔案的位置和<tomcat>的主密碼,在證書檔案生成過程中做了設定
<!--
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="8443" />
-->
<Connector port="8009" enableLookups="false" protocol="AJP/1.3" redirectPort="443" />
(3) 打開$CATALINA_HOME/conf/web.xml,在該檔案末尾增加:
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
3、上述配置完成後,重新開機TOMCAT後即可以使用SSL。IE位址欄中可以直接輸入位址不必輸入“http://” 或者 “https://” ;也可以輸入 “http:// ” 會跳轉成為 “https://” 來登入
4、注意事項:
(1) 生成證書的時間,如果IE用戶端所在機器的時間早于證書生效時間,或者晚于有效時間,IE會提示“該安全證書已到期或還未生效”
(2) 如果IE提示“安全證書上的名稱無效或者與站點名稱不比對”,則是由生成證書時填寫的伺服器所在主機的域名“您的名字與姓氏是什麼?”/“What is your first and last name?”不正确引起的
5、遺留問題:
(1)如果AC主機不能通過域名查找,必須使用IP,但是這個IP隻有在配置後才能确定,這樣證書就必須在AC确定IP位址後才能生成
(2)證書檔案隻能綁定一個IP位址,假設有10.1.25.250 和 192.168.1.250 兩個IP位址,在證書生成檔案時,如使用了10.1.25.250,通過IE就隻能使用10.1.25.250 來通路AC-WEB,192.168.1.250是無法通路AC-WEB的。