你好,我的服务器出现了严重问题,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 上添加另一个 vhost 时,Apache 无法启动。如能得到任何帮助,我将不胜感激。
答案1
您只需要编辑您的 httpd.conf 文件或指定虚拟主机的文件,并添加以下行以将 http 重定向到 https:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}