使用 apache2 设置子域名以响应 :443

使用 apache2 设置子域名以响应 :443

我阅读了一些有关此问题的指南,我认为 apache 可以通过 SSL 响应子域。我有 domain.com 在 80 上响应,我不需要 domain.com 在 443 上响应。相反,我对 SSL 的唯一用途是用于子域 sub.domain.com。

所以我的网站应该是

http://domain.com
http://www.domain.com
https://sub.domain.com
https://www.sub.domain.com

我的CNAME记录如下

  sub.domain.com xxx.xx.xx.xxx
  *.sub.domain.com xxx.xx.xx.xxx

A 记录存在但对于该示例来说并不重要。

我在 sites-enabled 中为 sub.domain.com 设置了一个单独的配置文件

NameVirtualHost xxx.xx.xx.xxx:443

<VirtualHost xxx.xx.xx.xxx:443>
    SSLEngine on
    SSLStrictSNIVHostCheck on
    SSLProtocol -ALL +SSLv3 +TLSv1
    SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM

    ServerAlias sub.domain.com

    DocumentRoot /usr/local/www/ssl/documents/

    SSLCertificateFile /root/sub.domain.com.crt
    SSLCertificateKeyFile /root/sub.domain.com.key


    Alias /robots.txt /usr/local/www/ssl/documents/robots.txt
    Alias /favicon.ico /usr/local/www/ssl/documents/favicon.ico

    Alias /js/libs /usr/local/www/ssl/documents/js/libs
    Alias /media/ /usr/local/www/documents/media/
    Alias /img/ /usr/local/www/ssl/documents/img/
    Alias /css/ /usr/local/www/ssl/documents/css/

    <Directory /usr/local/www/ssl/documents/>
    Order allow,deny
    Allow from all
    </Directory>

    WSGIDaemonProcess sub.domain.com processes=2 threads=7 display-name=%{GROUP}
    WSGIProcessGroup sub.domain.com

    WSGIScriptAlias / /usr/local/www/wsgi-scripts/script.wsgi

    <Directory /usr/local/www/wsgi-scripts>
    Order allow,deny
    Allow from all
    </Directory>
</VirtualHost>

现在值得一提的是https://domain.com响应我从上面的 script.wsgi 运行的内容,而不是https://sub.domain.com. 它不响应 sub.domain.com. 检查https://sub.domain.com导致 105 错误。这是一个 DNS 错误,但我确信 DNS 的 CNAME 记录没有问题,它们只是指向我的 IP。我是否做了 Apache 无法做的事情?

答案1

您不能使用 CNAME 将 DNS 名称指向 IP 地址,这里您需要 A 记录。您只能使用 CNAME 将规范名称指向另一个规范名称:

CNAME 记录:

主机.服务器.com ---> 2ndHost.服务器.com

一个记录:

服务器.com ---> 192.0.2.23

或者您可以使用 DNAME,DNAME 记录会为一个域的一个或多个子域创建别名。相比之下,CNAME 记录只会创建一个名称的别名

相关内容