我正在尝试在 Ubuntu 11 上使用自签名证书将现有的 apache2 站点从 http 更改为 https。该站点当前正在使用 的配置运行sites-available/default
。我按照文档中的/usr/share/doc/apache2.2-common/README.Debian.gz
说明安装ssl-cert
软件包(它已经安装,因此我运行sudo make-ssl-cert generate-default-snakeoil --force-overwrite
以确保无误),然后执行以下操作:
sudo a2dissite default
sudo a2enmod ssl
sudo a2ensite default-ssl
我更新了sites-available/default-ssl
以便DocumentRoot
指向/var/siteX.mydomain.com
。
然后我运行:
sudo service apache2 restart
但我对 http 版本的请求仍然成功并得到服务。对 https 版本的请求则无限期挂起。我错过了什么?
编辑:
值得一提的是,除了我遇到问题的站点之外,此机器上还有其他 6 个站点由 apache2 提供服务。因此,我的sites-enabled
目录如下所示:
default-ssl (symlink to sites-available/default-ssl - maps to siteX.mydomain.com)
siteA.mydomain.com
siteB.mydomain.com
siteC.mydomain.com
siteD.mydomain.com
siteE.mydomain.com
siteF.mydomain.com
在其他 site[AF].mydomain.com 站点中,任何地方都没有对 siteX.mydomain.com 的引用,因此它们都没有被意外配置为继续为http://siteX.mydomain.com
编辑2:
下面是我的配置文件开头的一段代码000-default-ssl
(此后的所有内容都是我没有触碰的默认内容):
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName siteX.mydomain.com:443
DocumentRoot /var/siteX.mydomain.com
DirectoryIndex index.php
编辑3:
更新输出grep -v \# 000-default-ssl | grep -Ev '^[ \t]*$'
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName siteX.mydomain.com:443
DocumentRoot /var/siteX.mydomain.com
DirectoryIndex index.php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/siteX.mydomain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Options +ExecCGI
AddHandler cgi-script .pl
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
编辑4:
这是ports.conf
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443 # I just added this now - still not working !!
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>