Apache-2.2

SSL 工作正常,如何從 http 添加 https 重定向?

  • September 22, 2014

嗨,我的伺服器遇到了重大問題,SSL 在與 https://… 連接時工作得很好,我需要設置從 http 到 https 的重定向。

這是我ssl.conf的 CentOS-6,有一個 IP 地址。使用 SAN 設置的 SSL 證書。寧可不使用.htaccess

Listen 172.21.11.48:443

NameVirtualHost 172.21.11.48:443

LoadModule ssl_module   modules/mod_ssl.so
SSLEngine on
SSLSessionCache         shmcb:/var/cache/httpd/mod_ssl/ssl_scache(512000)

<VirtualHost 172.21.11.48:443>
SSLEngine on
ServerAlias      "webmail.example.com"
DocumentRoot    "/var/www/html/roundcubemail"
SSLCertificateFile /etc/pki/tls/certs/aether.example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/aether.example.com-2048.key
SSLCACertificateFile /etc/pki/tls/certs/exampleca.crt
</VirtualHost>

<VirtualHost 172.21.11.48:443>
SSLEngine on
ServerAlias      "cloud.example.com"
DocumentRoot    "/var/www/html/owncloud"
SSLCertificateFile /etc/pki/tls/certs/aether.example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/aether.example.com-2048.key
SSLCACertificateFile /etc/pki/tls/certs/exampleca.crt
</VirtualHost>

http://webmail.example.com上連接時,會出現以下錯誤:

您的瀏覽器發送了此伺服器無法理解的請求。原因:您對啟用 SSL 的伺服器埠使用純 HTTP

當我在埠 80 上添加另一個虛擬主機時,Apache 無法啟動。任何幫助將不勝感激。

您只需要編輯您的 httpd.conf 文件或指定虛擬主機的文件並添加這些行以將 http 重定向到 https:

 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

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