主要講述在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頒發,告訴我們可能有安全隱患