phpstudy的Apache配置如何將HTTP轉換為HTTPS訪問?
                        
                        
                            來源:小白
                            發(fā)布時間:2018-10-25 15:21:11
                            閱讀量:657
                        
                     
                    
                        本篇文章給大家?guī)淼膬?nèi)容是介紹phpstudy的Apache配置SSL成功將HTTP轉換為HTTPS訪問。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。
1、去阿里云購買證書 有免費一年的證書 最多20個 一個證書需要填寫一個二級域名 www.xxx.com
開啟apache相應配置
| 1 2 3 4 5 | #修改httpd.conf文件
 LoadModule ssl_module modules/mod_ssl.so
 Include conf/extra/httpd-ssl.conf
 LoadModule rewrite_module
 #去掉上面三行前的"#"
 | 
保存退出
在apache目錄下的conf目錄下新建一個cert目錄,將你的證書文件放在這里面
開啟php的openssl模塊,在phpstudy的“php擴展及設置”里面開啟即可
修改httpd-ssl.conf文件,保存退出
在…\Apache\conf\extra目錄下,打開httpd-ssl.conf文件(注:先備份一遍,以免出錯,因為這個文件的錯誤我重裝phpstuy不下10回)
在文件里定位到 Listen 443 這句話這里,把 從這句話到這個文件結尾的文本 全部注釋掉或者刪除掉,替換成以下代碼
| 1 2 3 4 | Listen 443   
 SSLStrictSNIVHostCheck off
 SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
 SSLProtocol all -SSLv2 -SSLv3
 | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #這里的路徑設置你的網(wǎng)站根目錄
 DocumentRoot "C:\phpStudy\PHPTutorial\WWW"
 #這里xxxxx.com替換成你的域名
 ServerName www.xxxxx.com    
 #這里xxxxx.com替換成你的域名
 ServerAlias xxxxx.com          
 #這里的路徑設置你的網(wǎng)站根目錄    
       
     Options FollowSymLinks ExecCGI
     AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
   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”
重啟apache,看看能不能正常啟動,如果有異常,嘗試把第4步中httpd-ssl.conf代碼恢復注釋(把#重新加上去,保存退出),再次重啟apache,如果此時能夠正常啟動,則說明httpd-ssl.conf文件中有錯誤(是不是重復監(jiān)聽了?證書路徑對不對?證書是否有效?),請認真檢查,直到能夠正常啟動apache
項目http訪問自動跳轉https配置根目錄 .htaccess
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Options -MultiViews
   RewriteEngine On
   # Redirect Trailing Slashes If Not A Folder...
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)/$ /$1[L,R=301]
   # Handle Front Controller...
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^ index.php [L]
   # Handle Authorization Header
 RewriteCond %{HTTP:Authorization} .
 RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 |