在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,
步驟四:然後將 server.crt,server.key複製到apache的conf資料夾下,重啟apache
步驟五:訪問http://localhost即支援https
不過由於,我們的CA不是由第三方機構頒發的,而是我們自己頒發的,所以,IE訪問的時候,會顯示,這個證書不是由Trused CA Authenticator頒發,告訴我們可能有安全隱患