1. 程式人生 > >在windows下apache配置SSL以實現http轉換為https

在windows下apache配置SSL以實現http轉換為https

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