Ssl

用於 Wordpress 站點的 SSL 解除安裝到 Apache2

  • August 22, 2016

我有一個在 Google Compute Engine 實例上執行的 WordPress 站點,並且 SSL 曾經在 Apache 中設置。

由於 SSL 和圖像大小調整給該實例帶來了很大壓力,因此我設置了 Google Compute Engine 負載均衡器,在負載均衡器中設置 SSL 並啟用了 CDN。

在 Apache 端,我禁用了*:443配置,只留下了配置*:80。負載均衡器現在接受埠 443 上的請求並指向埠 80 上的實例。

<VirtualHost *:80>
       ServerAdmin info@mysite.com
       ServerName  mysite.com
       ServerAlias www.mysite.com

       # Indexes + Directory Root.
       DirectoryIndex index.php index.html
       DocumentRoot /var/www/mysite/htdocs/

       # Logfiles
       ErrorLog  /var/www/mysite/logs/error.log
       CustomLog /var/www/mysite/logs/access.log combined
</VirtualHost>

這可行,除了我現在在網站上遇到混合內容錯誤,因為所有資源仍在通過 HTTP 載入。

我現在嘗試啟用 URL 重寫,以查看是否可以通過 https 獲取所有內容:

<VirtualHost *:80>
       ServerAdmin info@mysite.com
       ServerName  mysite.com
       ServerAlias www.mysite.com

       # Indexes + Directory Root.
       DirectoryIndex index.php index.html
       DocumentRoot /var/www/mysite/htdocs/

       # Logfiles
       ErrorLog  /var/www/mysite/logs/error.log
       CustomLog /var/www/mysite/logs/access.log combined

       RewriteEngine on
       RewriteCond %{HTTPS} off
       RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
</VirtualHost>

一旦啟用 RewriteEngine 並如上所述重寫 url,我就會獲得無限數量的重定向。

我在 Apache 方面有點生疏,因為在過去的 5 年裡我幾乎只使用 NGINX,關於如何讓 WordPress 在這個設置上正常工作有什麼想法嗎?

事實證明我的設置沒有問題,在 WordPress 中添加以下行wp-config.php修復它

// force SSL
$_SERVER['HTTPS']='on';

或者,如果您想同時執行 http 和 https:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
      $_SERVER['HTTPS']='on';
}

顯然刪除了 https 重定向:

#        RewriteEngine on
#        RewriteCond %{HTTPS} off
#        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]

引用自:https://serverfault.com/questions/798349