關於php設定https的問題

2020-10-15 12:00:55

php設定https的方法:首先設定「httpd.ini」並新增相關設定;然後將「httpd-ssl.conf」裡面的「VirtualHost」設定完整路徑;最後使http重定向到https即可。

推薦:《》

設定https以及http轉https的問題

公司用的是阿里雲伺服器win2008server r2 ,環境是phpwamp,出現許多問題。2018-11-12

一 設定https

1、設定httpd.ini 取消以下三個設定的#

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 
LoadModule ssl_module modules/mod_ssl.so 
Include conf/extra/httpd-ssl.conf

2、並且注意 httpd-ssl.conf裡面的VirtualHost設定要用完整路徑,支援多個https同時使用

例如這樣既可:

#百度官方網站
<VirtualHost *:443>    
    DocumentRoot "D:/WWW/baidu/public/"    
    ServerName www.baidu.com:443  
    SSLEngine on    
    SSLCertificateFile          D:/ssl/www.baidu.com/www.baidu.com.cer  
    SSLCertificateKeyFile       D:/ssl/www.baidu.com/www.baidu.com.key    
    SSLCertificateChainFile     D:/ssl/www.baidu.com/www.baidu.com_ca.crt  
</VirtualHost>
#淘寶官方網站
<VirtualHost *:443>
    DocumentRoot "D:/WWW/taobao/public/"    
    ServerName www.taobao.com:443  
    SSLEngine on    
    SSLCertificateFile          D:/ssl/www.taobao.com/www.taobao.com.cer  
    SSLCertificateKeyFile       D:/ssl/www.taobao.com/www.taobao.com.key    
    SSLCertificateChainFile     D:/ssl/www.taobao.com/www.taobao.com_ca.crt  
</VirtualHost>
<VirtualHost _default_:443>
    DocumentRoot "C:/*****/PHPWAMP_IN2/wwwroot/test"
    ServerName www.test.com:443
    ServerAlias test.com
    DirectoryIndex index.html index.htm index.php default.php app.php u.php
    ErrorLog logs/example_error.log
    CustomLog logs/example_access.log \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    SSLEngine on
    SSLCertificateFile "C:/**************.com_public.crt"
    SSLCertificateKeyFile "C:/**********.com.key"
    SSLCertificateChainFile "C:/*****.com_chain.crt"
<Directory "C:/*****/PHPWAMP_IN2/wwwroot/test">
    SSLOptions +StdEnvVars
    AllowOverride All
    Require all granted
</Directory>
<FilesMatch "\.(shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
    BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
</VirtualHost>

上圖是phpwamp軟體設定ssl的程式碼(***是目錄路徑和檔名 ,這裡抹除)

最後要注意的是,檢視httpd-ssl.conf檔案裡面所使用的443埠是否被佔用,如果被佔用Apache也會啟動失敗。

3、因為是阿里雲伺服器,所有需要在阿里雲後臺管理開啟443埠

4、在伺服器上的防火牆增加入站規則 443

留意SSLCertificateChainFile的地址設定,三個ssl路徑地址中任何一個路徑錯誤都會造成apache的啟動失敗,如有問題,請重點排查這處。

二 http重定向到https

當你的站點使用了HTTPS之後,你可能會想把所有的HTTP請求(即埠80的請求),全部都重定向至HTTPS(即埠443)。這時候你可以用以下的方式來做到:(Apache mod_rewrite)

把這段程式碼放在.htaccess檔案(網站根目錄下),即可實現HTTP到HTTPS的重定向。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.baidu.com/$1 [R=301,L]
</IfModule>

而當你又想用回HTTP的時候,反過來就可以了:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://www.baidu.com/$1 [R=301,L]
</IfModule>

其中R=301表示Moved Permanently,即告訴搜尋引擎或者瀏覽器下去直接存取後者的地址,

如果只是試驗性地重定向,可以使用R=302(Found),臨時跳轉

以上就是關於php設定https的問題的詳細內容,更多請關注TW511.COM其它相關文章!