主要講述在windows下apache配置SSL以實現http轉換為https
SSL: SSl是為Http傳輸提供安全的協議,通過證書認證來確保客戶端和網站服務器之間的數據是安全。也就是說在SSL下http傳輸是安全的,我們成為https.
過程:
步驟一:安裝apache,使其支持SSL,并安裝php
1.安裝配有SSL模塊的apache,apache_2.2.8-win32-x86-openssl-0.9.8g
2.配置apache以支持SSL:打開apache的配置文件conf/httpd.conf
1)LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
去掉兩行前面的#
2)注意修改httpd-ssl.conf 文件里的兩個字段:
SSLCertificateFile "C:/Apache2.2/conf/server.crt"
SSLCertificateKeyFile "C:/Apache2.2/conf/server.key"
3.安裝php,整合apache和Php(略) //此步可以省略,如果你不需要PHP的話。
為下面你所生成的證書和密鑰地址。
步驟二:為網站服務器生成證書及私鑰文件
1. 生成服務器的私鑰
進入命令行:
D:\local\apache2\bin\openssl genrsa -out server.key 1024
在當前目錄下生成了一個server.key生成簽署申請
2. 生成簽署申請
D:\local\apache2\bin>openssl req -new –out server.csr -key server.key -config ..\conf\openssl.cnf
此時生成簽署文件server.csr.
步驟三:通過CA為網站服務器簽署證書
1.生成CA私鑰
D:\local\apache2\bin\openssl genrsa -out ca.key 1024
多出ca.key文件
2.利用CA的私鑰產生CA的自簽署證書
D:\local\apache2\bin\openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
此時需要輸入一些信息,注意Common Name為服務器域名,如果在本機,為本機IP。
3.CA為網站服務器簽署證書
D:\local\apache2\bin\openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
但,此時會報錯:
于是在在當前目錄創建demoCA,里面創建以下文件,index.txt,serial內容為01,其他為空,以及文件夾newcert.再執行一遍,即可生成server.crt文件
步驟四:然后將 server.crt,server.key復制到apache的conf文件夾下,重啟apache
步驟五:訪問http://localhost即支持https
不過由于,我們的CA不是由第三方機構頒發的,而是我們自己頒發的,所以,IE訪問的時候,會顯示,這個證書不是由Trused CA Authenticator頒發,告訴我們可能有安全隱患