详解 Windows下apache 实现 SSL
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即可!
?
轉自:http://dufei.blog.51cto.com/382644/90532
總結
以上是生活随笔為你收集整理的详解 Windows下apache 实现 SSL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网民关注iPhone、Google、微软
- 下一篇: maven web工程用MyEclips