我正在尝试让 Apache 2 对服务器上的众多域之一使用 SSL。我不关心服务器上运行 SSL 的任何其他域。我正在尝试为 Facebook 应用程序执行此操作。根据http://www.t1shopper.com/tools/port-scan/
该网址是 facebook.mythinairwireless.com
我遵循了以下指南:http://www.codealpha.net/631/name-based-virtual-hosts-with-ssl-using-apache2-on-ubuntu-lucid/
当我重新启动 Apache 时,我收到以下日志消息:
[Fri Jan 20 20:23:42 2012] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Fri Jan 20 20:23:42 2012] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Fri Jan 20 20:23:42 2012] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4 with Suhosin-Patch mod_ssl/2.2.14 OpenSSL/0.9.8k configured -- resuming normal operations
我的 ports.conf 文件如下所示:
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
还有我的网站配置文件(除了一些文件路径:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile obscured
ServerName facebook.mythinairwireless.com
ServerAdmin webmaster@localhost
DocumentRoot /home/obscured/facebook
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
我对端口 80 的配置也在这个文件中。
答案1
这些只是警告。如果您的浏览器支持 SSL,则应该让您的网站运行 SSLSNI(服务器名称指示)。
因此,建议为 SSL 网站配置基于 IP 的虚拟主机,而不是基于名称的虚拟主机。
答案2
检查 ssl 模块是否已启用(可能带有该警告)。
apache2 -t -D DUMP_MODULES -f /etc/apache2/apache2.conf
注意,上面的命令中 apache2 可能需要替换为 httpd。最后的文件路径应该是主 apache 配置文件。
也可能是防火墙阻止了该端口。下一个命令将允许您查看它是否确实在监听。如果您没有得到任何结果,则表示没有进程在监听 443。
netstat -lpn | grep 443
这是我的整个配置,仅供参考。
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName sub.domain.com
DocumentRoot /home/www/sub.domain.com/
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/sub.domain.com
SSLCertificateKeyFile /etc/apache2/ssl/sub.domain.com
</VirtualHost>
一些附加位应该已经随 ssl 模块一起提供。
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/var/run/apache2/ssl_mutex
SSLCipherSuite HIGH:MEDIUM:!ADH
SSLProtocol all -SSLv2