我在虚拟主机中设置 SSL 时遇到问题。该设置在不安全的网站上运行良好。我希望它能与启用 SSL 的网站配合使用。
我的httpd-vhosts.conf如下:
NameVirtualHost 127.0.0.1
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect /binDebug folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} binDebug
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</IfModule>
<VirtualHost localhost>
ServerName localhost
DocumentRoot "C:\xampp\htdocs"
DirectoryIndex index.php index.html
<Directory "C:\xampp\htdocs">
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost virtual.c7beta.com>
ServerName virtual.c7beta.com
DocumentRoot "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug"
DirectoryIndex index.php index.html
Alias /binDebug "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug/"
<Directory "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
# SSLRequireSSL
</Directory>
</VirtualHost>
<VirtualHost virtual.app.c7beta.com>
ServerName virtual.app.c7beta.com
DocumentRoot "C:\development\app_server\httpdocs"
DirectoryIndex index.php index.html
<Directory "C:\development\app_server\httpdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
# SSLRequireSSL
</Directory>
</VirtualHost>
<VirtualHost virtual.s1.c7beta.com>
ServerName virtual.s1.c7beta.com
DocumentRoot "C:\development\storage_server\httpdocs"
DirectoryIndex index.php index.html
<Directory "C:\development\storage_server\httpdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
# SSLRequireSSL
</Directory>
</VirtualHost>
写上不要注释 SSLRequiesSSL。有人能检查一下吗,并告诉我应该做哪些更改才能使用 https,就像 http 的工作方式一样。
我按照以下建议进行了配置更改:http://robsnotebook.com/xampp-ssl-encrypt-passwords 看起来运行正常。但当我输入 servername.com 时,它仍然重定向到 servername.com/xampp
请帮助 Zeeshan
答案1
SSL 握手发生在 HTTP 标头与主机字段一起发送之前,但主机名存在于 SSL 握手中使用的证书中。要克服这个问题,您的客户端和服务器必须支持 RFC 3546 TLS 扩展和服务器名称指示。在 Microsoft 客户端世界中,该支持是在 Vista 上的 IE7 中引入的。我不知道 Apache 的情况。
“传统”方法(RFC 3546 之前)是每个 SSL 站点都有一个 IP 地址,这样就可以避免虚拟主机问题。引入服务器名称指示就是为了解决这个问题。我至少希望看到服务器配置条目使用自己的证书/私钥对来配置每个虚拟主机。
更多关于Apache 虚拟主机。看来您也需要确保您有一个合适的版本。