SSL:安全套接層,是netscape公司設計的主要用於web的安全傳輸協議。這種協議在WEB上得到了普遍的應用。經過證書認證來確保客戶端和網站服務器之間的數據是安全,過程大體以下:
SSL客戶端在TCP鏈接創建以後,發出一個消息給服務器,這個消息裏面包含了本身可實現的算法列表和其它一些須要的消息,SSL的服務器端會迴應一個數據包,這裏面肯定了此次通訊所須要的算法,而後發過去本身的證書(裏面包含了身份和本身的公鑰)。Client在收到這個消息後會生成一個祕密消息,用SSL服務器的公鑰加密後傳過去,SSL服務器端用本身的私鑰解密後,會話密鑰協商成功,雙方能夠用同一份會話密鑰來通訊了。
若是對於通常的應用,管理員只需生成「證書請求」(後綴大多爲.csr),它包含你的名字和公鑰,而後把這份請求交給諸如verisign等有CA服務公司,你的證書請求經驗證後,CA用它的私鑰簽名,造成正式的證書發還給你。管理員再在web server上導入這個證書就好了。若是你不想花那筆錢,或者想了解一下原理,能夠本身作CA。從ca的角度講,你須要CA的私鑰和公鑰。從想要證書的服務器角度將,須要把服務器的證書請求交給CA.
若是你要本身作CA,別忘了客戶端須要導入CA的證書(CA的證書是自簽名的,導入它意味着你「信任」這個CA簽署的證書)。而商業CA的通常不用,由於它們已經內置在你的瀏覽器中了。
實現HTTPS,經我我的測試,每一個版本實現的細節都有所不一樣,但我的認爲最爲簡單的仍是apache_
2.2.8
-win32-x86-openssl-0.
9.8g
那麼我下面就以這個版原本介紹一下如何實現基於windows下的https.
思路:
1. 配置 apache 以支持 SSL
2. 爲網站服務器生成私鑰及申請文件
3. 安裝CA 使用兩種方法
4.經過CA爲網站服務器簽署證書
5.測試
步驟1:配置 APACHE以支持SSL
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
去掉兩行前面的#
步驟2: 爲網站服務器生成證書及私鑰文件
生成服務器的私鑰
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl genrsa -out server.key 1024
生成一個
server.key
生成簽署申請
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl req -new –out server.csr -key server.key -config ..\conf\openssl.cnf
此時生成簽署文件
SERVER.CSR
步驟
3
:
CA
方面:
應該是一個專門的
CA
機構,咱們這裏就本身在同一臺機器搭建一個企業內部
CA
。
這裏能夠直接使用商業
CA
,但要交納必定的費用,咱們來本身動手搭建一個企業內部
CA
。
咱們這裏介紹兩種方法,一種是使用
OPENSSL
另外一種是使用
WNDOWS
系統自帶的
CA
服務。
咱們先看第一種方法,使用
OPENSSL
生成
CA
私鑰
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl genrsa -out ca.key 1024
多出
CA.key
文件
利用
CA
的私鑰產生
CA
的自簽署證書
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
此時生成了一個本身的證書文件,
CA
就能夠工做了,等着生意上門了。
下面準備爲網站服務器簽署證書
C:\Program Files\Apache Software Foundation\Apache2.2\bin>openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
但,此時會報錯:
因此咱們須要先建立如下文件結構用於存放相應文件
:
再執行一遍,便可生成
server.crt
文件
而後將
server.crt server.key
複製到
conf
文件夾下
從新啓動
APACHE
便可!
但要在
IE
中導入
CA
的證書,不然會報告證書不可信任!
實驗終於
OK
!!
固然也可使用
WINDOWS
的證書服務來爲網站服務器簽署證書:下面咱們就來看一看:
安裝成功後會在默認站點下生成certsr慮擬目錄
下面咱們開始簽署過程
先中止
APACHE
,由於
80
口在佔用。開啓
IIS
的默認網站
而後選擇高級證書申請
而後開始頒發便可:
而後再將
server.key
也複製到
conf
文件夾下。
從新啓動
APACHE
,便可!
步驟
4
:
從新啓動
APACHE
便可!
到此,實驗終於結束了.兩天的時間,終於能夠放鬆一下了!!!!!!!