所謂的HTTPS (即 HTTP over SSL), 是目前被認為很安全的一種通訊協定。當資料在一個不安全的網路環境傳遞前,會先透過SSL加密,以保護敏感的資訊如信用卡號等等以免被第三者給竊取。每當client端與伺服器建立連線時,client端就會隨機產生一把對稱式的金鑰把接下來要傳輸的資料加密成密文,而伺服器在收到密文後再透過同一把金鑰來還原資料。
問題是伺服器該如何安全地從client端取得金鑰來解析密文呢?
其實很簡單,只要client端在傳遞金鑰前先用伺服器的public key加密,而伺服器再用他的private key解析就可以了。由於能解開用public key 加密的資料,只有伺服器它本身的private key,所以如此一來就能確保金鑰在傳輸過程中的安全性。
如果要建立一個HTTPS 的網站,通常伺服器會需要一個憑證(裡面有public key)讓client 端可以加密通訊用的金鑰。
一般而言,如果取得的憑證是合法的,當我們使用瀏覽器連接到網站時,網址列的會有一個鎖的圖示出現
如果憑證有問題如下,以IE為例就會出現一個X的符號:
此時我們可以點擊這個符號去觀看錯誤訊息,
如果出現位址不符的錯誤訊息
表示憑證上當初綁的網址OOO,但現在我們瀏覽的卻是XXX網站
而這個例子是
所以產生"位址不符"的憑證錯誤
問題是伺服器該如何安全地從client端取得金鑰來解析密文呢?
其實很簡單,只要client端在傳遞金鑰前先用伺服器的public key加密,而伺服器再用他的private key解析就可以了。由於能解開用public key 加密的資料,只有伺服器它本身的private key,所以如此一來就能確保金鑰在傳輸過程中的安全性。
如果要建立一個HTTPS 的網站,通常伺服器會需要一個憑證(裡面有public key)讓client 端可以加密通訊用的金鑰。
一般而言,如果取得的憑證是合法的,當我們使用瀏覽器連接到網站時,網址列的會有一個鎖的圖示出現
如果憑證有問題如下,以IE為例就會出現一個X的符號:
此時我們可以點擊這個符號去觀看錯誤訊息,
如果出現位址不符的錯誤訊息
表示憑證上當初綁的網址OOO,但現在我們瀏覽的卻是XXX網站
而這個例子是
當初憑證是綁 hello.xxx.com.tw這個網址
但我卻用了https://localhost 去連
所以產生"位址不符"的憑證錯誤
留言
張貼留言