sub*_*ero 2 ssl https openssl apache-2.2
我有这个设置
Server version: Apache/2.2.22 (Ubuntu)
OpenSSL 1.0.1c 10 May 2012
Run Code Online (Sandbox Code Playgroud)
一个 IP 连接多个域。因为example1.com我有一个签名的 SSL 证书,因此example1.com可以通过https://secure.example1.com
这也适用于example2.com(使用有效证书签名并通过 访问https://secure.example2.com)
但是,example3.com没有绑定任何 SSL 证书,并且不应通过https(SSL 端口 443)访问。但是,当用户转到https://example3.com警告时会显示。在 Chrome 中它看起来像这样
您试图访问 example3.com,但实际上您访问了一个将自身标识为 secure.example1.com 的服务器。这可能是由服务器上的错误配置或更严重的事情引起的。您网络上的攻击者可能试图让您访问 example3.com 的虚假(并且可能有害)版本
如果你不理会警告,用户实际上会看到 secure.example1.com
VirtualHost 设置如下所示
<VirtualHost *:443>
ServerName secure.example1.com
DocumentRoot /var/www/blahblah
SSLEngine on
SSLCertificateFile /blahblah.crt
SSLCertificateKeyFile /blahblah.key
SSLCertificateChainFile /blahblah.pem
</VirtualHost>
<VirtualHost *:443>
ServerName secure.example2.com
DocumentRoot /var/www/blahblah
SSLEngine on
SSLCertificateFile /blahblah.crt
SSLCertificateKeyFile /blahblah.key
SSLCertificateChainFile /blahblah.pem
</VirtualHost>
<VirtualHost *:80>
ServerName example3.com
DocumentRoot /var/www/blahblah
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我怎样才能防止这种行为?
非 SSL 域不应使用此 IP。即使对于多个支持 SSL 的域,您也依赖客户端来毫无问题地实现 SNI,这可能是也可能不是一个安全的假设。
问题是在 Apache 可以将浏览器重定向到 HTTP 之前,SSL 握手必须成功,因此如果您无法为域提供有效证书,客户端将始终声明 SSL 错误。
编辑:如果您只使用一个带有适当 SAN 的证书(多域证书),则多个 SSL 域都可以正常工作。但是,非 SSL 域的问题仍然存在。
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |