環境:php
- 阿里云云服務器 Windows Server 2008 標準版 SP2 中文版(趁1212優惠買的一年的水貨配置)
- 阿里雲購買的域名(已備案、已解析)
- 服務器:phpstudy:php5.4.45+Apache(由於是phpstudy集成的,因此沒找到apache的版本,我感受應該是2.4.8以前的版本)
- SSL證書 (配置過程當中,我申請了2個不一樣機構的證書,第一個GG了,是在 https://www.trustasia.com/ 申請的1年免費證書。成功的是用的第二個,在 https://www.myssl.cn/products/freessl.html 申請的1個月的試用證書。因此是我技術問題仍是???)
步驟:html
- 申請證書(某度不少教程的,你們自行搜索)
- 上傳證書
登錄阿里雲控制檯=》安全(雲盾)=》CA證書服務=》上傳原有證書(也能夠直接買阿里雲的證書,這樣就不用上傳,不過我的網站通常是申請免費的證書)
- 開啓服務器443端口(https默認端口)
阿里雲控制檯=》雲計算基礎服務=》雲服務器ECS=》網絡和安全=》安全組,沒有安全組的建立一個安全組,有的直接選擇相應安全組,點擊配置規則=》添加安全組規則(把80端口和443端口添加進安全組,受權對象填0.0.0.0/0)
- 開啓apache相應配置
#修改httpd.conf文件 LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule rewrite_module
#去掉上面三行前的"#"
保存退出
apache
- 在apache目錄下的conf目錄下新建一個cert目錄,將你的證書文件放在這裏面
- 開啓php的openssl模塊,在phpstudy的「php擴展及設置」裏面開啓便可
- 修改httpd-ssl.conf文件,保存退出
在..\Apache\conf\extra目錄下,打開httpd-ssl.conf文件(注:先備份一遍,以避免出錯,由於這個文件的錯誤我重裝phpstuy不下10回)
在文件裏定位到 Listen 443 這句話這裏,把 從這句話到這個文件結尾的文本 所有註釋掉或者刪除掉,替換成如下代碼
Listen 443 //這裏強調一下,若是Listen 443這句代碼在這個文件裏重複出現了,即重複監聽,apache會報錯,而後不能啓動
SSLStrictSNIVHostCheck off
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLProtocol all -SSLv2 -SSLv3
<VirtualHost *:443>
#這裏的路徑設置你的網站根目錄
DocumentRoot "C:\phpStudy\PHPTutorial\WWW"
#這裏xxxxx.com替換成你的域名
ServerName www.xxxxx.com
#這裏xxxxx.com替換成你的域名
ServerAlias xxxxx.com
#這裏的路徑設置你的網站根目錄
<Directory "C:\phpStudy\PHPTutorial\WWW">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLEngine on
#你的公鑰文件
SSLCertificateFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.crt"
#你的私鑰文件(有的機構命名爲private或者以你的域名爲文件名命名)
SSLCertificateKeyFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/server.key"
#證書鏈文件(有的機構命名爲CA) 我嘗試過註釋掉這個選項,結果apache不能運行
SSLCertificateChainFile "C:/phpStudy/PHPTutorial/Apache/conf/cert/chain.crt"
</VirtualHost>
- 重啓apache,看看能不能正常啓動,若是有異常,嘗試把第4步中httpd-ssl.conf代碼恢復註釋(把#從新加上去,保存退出),再次重啓apache,若是此時可以正常啓動,則說明httpd-ssl.conf文件中有錯誤(是否是重複監聽了?證書路徑對不對?證書是否有效?),請認真檢查,直到可以正常啓動apache
- 打開hosts文件
個人hosts文件在C:\Windows\System32\drivers\etc目錄下
用記事本打開,在127.0.0.1 localhost下面添加一句話:
127.0.0.1 www..xxxxx.com //這裏替換成你的域名
保存退出
- 修改.htaccess文件,使域名重定向到https(這樣訪問域名的時候就不用手動寫https://,它會自動添加的)
在你的網站的根目錄(個人是WWW目錄)下添加或者修改.htaccess文件,代碼以下
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
Options +FollowSymLinks
order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>
保存退出
- 檢查服務器是否已經關閉了windows自帶的IIS服務器(由於可能會佔用apache的80端口),檢查是否關閉了系統防火牆,檢查是否有其餘程序佔用了80或者443端口。確認都已經關閉後進行下一步 (這裏給你們貼一個端口掃描工具用於檢查:http://tool.chinaz.com/port/)
- 重啓apache
- 啓動瀏覽器檢查是否能夠訪問localhost 及你的域名,而且域名頭部標誌爲https。若是不能正常訪問,請根據以上步驟從新檢查。
- SSL配置成功,可以使用https訪問你的域名了!
轉載註明出處,謝謝!
有任何問題能夠留言,我會盡力幫助你們的。windows