Apache - 2 个子域名,无通配符 SSL 证书

Apache - 2 个子域名,无通配符 SSL 证书

我有一个子域名,该子域名具有 SSL 证书,并且运行良好。它的网址如下:sd1.mydomain.com(sd1=sub-domain 1)。现在我想添加第二个子域名,但它不需要证书来加密数据。因此,我想要:sd2.mydomain.com

我调整了我的sites-enabled目录,使其包含两个配置文件,每个子域一个。第一个(也是有效的)子域的配置文件如下所示(显然将实际域更改为“mydomain”):

<VirtualHost *:443>

    SSLEngine on
    SSLProtocol all
    SSLCertificateFile /usr/local/ssl/crt/certificate.crt
    SSLCertificateKeyFile /usr/local/ssl/crt/sd1.mydomain.com
    SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt
    ServerAdmin [email protected]
    ServerName https://sd1.mydomain.com

    AliasMatch ^/([^/]*\.css) /srv/www/cpm/static_media/css/$1
    Alias /static_media/ /srv/www/cpm/static_media/
    Alias /static/admin/ /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/
    Alias /favicon.ico "/srv/www/cpm/static_media/img/favicon.ico"


    <Directory /srv/www/cpm/static_media/>
        Options -Indexes
        Order deny,allow
        Allow from all
        deny from 219.0.0.0/8

    </Directory>

    WSGIScriptAlias / /srv/www/cpm/django.wsgi

    <Directory /srv/www/cpm>
        Options -Indexes
        Order deny,allow
        Allow from all
        deny from 219.0.0.0/8
    </Directory>

    ErrorLog /srv/www/logs/cpm_logs/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /srv/www/logs/cpm_logs/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

该网站运行一个需要安全的 Django webapp,并且运行良好。

现在我想建立第二个网站,实际上是 WIKI,它不需要安全,因此我创建了这个配置文件sd2.mydomain.com

<VirtualHost *:80>

        ServerAdmin [email protected]
        ServerName http://sd2.mydomain.com

        DocumentRoot /srv/www/wiki/public_html/

              <Directory />
                  Options FollowSymLinks
                  AllowOverride None
              </Directory>

              <Directory /srv/www/wiki/public_html/>
                  Options Indexes FollowSymLinks MultiViews
                  AllowOverride All
                  Order allow,deny
                  allow from all
              </Directory>


              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

              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>

</VirtualHost>

我没有NameVirtualHost这样做,因为我试图让每个站点独立运行,然后让它们同时运行。(我一次只激活一个)

我的问题是,当我打开浏览器并尝试访问http://sd2.mydomain.com该网站时,该网站根本无法加载,错误日志中也没有任何内容告诉我出了问题。但是,如果我将所有相同的SSL内容添加到sd2.mydomain.com配置文件中,第二个网站工作,但我必须导航到https://sd2.mydomain.com才能使其工作,而且显然 SSL 证书失败了。

我在这里做错了什么?我觉得所有配置都是准确的,因为没有错误。我遗漏了什么?

谢谢

答案1

那么,当您运行 时,Apache 监听哪些端口netstat -ntlp?我注意到,在您的第一个示例中,似乎没有端口 80 虚拟主机。您确定您确实已使用 来设置 Apache 吗Listen 80?还是已经更改,所以只有Listen 443

相关内容