1. 程式人生 > >phpstudy的Apache配置SSL成功將HTTP轉換為HTTPS訪問

phpstudy的Apache配置SSL成功將HTTP轉換為HTTPS訪問

1、去阿里雲購買證書 有免費一年的證書 最多20個 一個證書需要填寫一個二級域名 www.xxx.com
開啟apache相應配置

#修改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 這句話這裡,把 從這句話到這個檔案結尾的文字 全部註釋掉或者刪除掉,替換成以下程式碼

Listen 443 //這裡強調一下,如果Listen 443這句程式碼在這個檔案裡重複出現了,即重複監聽,apache會報錯,然後不能啟動
SSLStrictSNIVHostCheck off
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLProtocol all -SSLv2 -SSLv3

#這裡的路徑設定你的網站根目錄
DocumentRoot "C:\phpStudy\PHPTutorial\WWW"  
#這裡xxxxx.com替換成你的域名
ServerName www.xxxxx.com    
#這裡xxxxx.com替換成你的域名
ServerAlias xxxxx.com          
#這裡的路徑設定你的網站根目錄    
      
    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檔案中有錯誤(是不是重複監聽了?證書路徑對不對?證書是否有效?),請認真檢查,直到能夠正常啟動apache

專案http訪問自動跳轉https配置根目錄 .htaccess

  	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}]