標籤:collect 網站名 自己 order log XML 解密 server ssl
對稱式加密:加密和解密用的是同樣的密鑰。
非對稱式加密:使用一對密鑰,公開金鑰和私密金鑰,私密金鑰只由一方保管,不能外泄;公開金鑰可以發給任何請求它的人
那麼得到公開金鑰的一方怎麼確定這個公開金鑰是伺服器發過來的呢?
這個就需要就公開金鑰到第三方認證機構認證,產生數位憑證,這個數位憑證裡麵包含有公開金鑰。
現在用戶端要向伺服器發送訊息,伺服器怎麼知道這個訊息是A發過來的而不是B或者C發過來的呢?
這時用戶端也產生一對公開金鑰和私密金鑰,私密金鑰自己保管,公開金鑰向外發布。用戶端將資料和資料的數位簽章(也叫訊息摘要,資料經MD5演算法產生的)一起用私密金鑰加密,然後傳送給伺服器端。
伺服器能用公開金鑰開啟,說明是A發過來的(不是B或C);再將資料用MD5演算法產生訊息摘要,與傳送過來的訊息摘要是一致的說明資料沒有被篡改。
對稱式加密和非對稱式加密比較
(1) 對稱式加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網路傳輸,所以安全性不高。
(2) 非對稱式加密使用了一對密鑰,公開金鑰與私密金鑰,所以安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱式加密的密鑰使用非對稱式加密的公開金鑰進行加密,然後發送出去,接收方使用私密金鑰進行解密得到對稱式加密的密鑰,然後雙方可以使用對稱式加密來進行溝通。
在實際開發中我們一般將對稱式加密的密鑰使用非對稱式加密演算法來傳送過去。
(1) Alice需要在銀行的網站做一筆交易,她的瀏覽器首先產生了一個隨機數作為對稱金鑰。
(2) Alice的瀏覽器向銀行的網站請求公開金鑰。
(3) 銀行將公開金鑰發送給Alice。
(4) Alice的瀏覽器使用銀行的公開金鑰將自己的對稱金鑰密碼編譯。
(5) Alice的瀏覽器將加密後的對稱金鑰發送給銀行。
(6) 銀行使用私密金鑰解密得到Alice瀏覽器的對稱金鑰。
(7) Alice與銀行可以使用對稱金鑰來對溝通的內容進行加密與解密了。
tomcat配置加密的連結器
使用jdk內建的keytool工具產生密鑰庫輸入:
1,keytool -genkey -alias tomcat -keyalg RSA,接著注意您的名字和姓氏填寫網站名如localhost。產生keystore檔案。
2,將.keystore檔案放到tomcat的conf檔案夾下面。
3,在conf檔案夾下有一個server.xml檔案,配置htttps連接器,加入參數keystoreFile和keystorePass。
如果想將所有請求都轉化為https串連,可以將8443連接埠修改為443連接埠,同時修改conf檔案夾下面的web.xml,在<welcom-list-file/>標籤後面加入下面這一段話。
- <security-constraint>
- <!-- Authorization setting for SSL -->
- <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>
tomcat配置加密的連接器https