首页 文章

具有多个域的通配符SSL

提问于
浏览
1

我有一个CentOS / Apache OpenSSL服务器 . 我使用通配符子域(应用程序逻辑表面正确的站点)托管两个域名,例如

HTTPS://*.testing1.com

HTTPS://*.testing2.com

它在HTTP上工作得很好: -

<VirtualHost *:80>
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmaster@testing1.com
  ServerName  testing1.com
  ServerName  testing2.com

  ServerAlias *.testing1.com *.testing2.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/app/public_html/public

</VirtualHost>

我已经为testing1.com和testing2.com购买了两张Wildcard SSL认证,但我不确定如何在这种结构中进行设置: -

<VirtualHost *.testing1.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing1.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing1.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing1.com
     ServerName testing1.com
     ServerAlias *.testing1.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

   <VirtualHost *.testing2.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing2.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing2.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing2.com
     ServerName testing2.com
     ServerAlias *.testing2.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

上面的SSL不起作用,使用* .testing1.com定义,也不使用testing1.com .

我还需要为testing2.com重复这个

2 回答

  • 0

    基于名称的虚拟主机和SSL仅在所有虚拟主机位于同一域中且您具有该域的通配符SSL证书时才起作用 .

    但是你有2个不同的域名 .

    在这种情况下,只有在为每个启用SSL的虚拟主机提供自己的IP地址时,它才会起作用 . 因此,您应该使用基于IP的虚拟主机,而不是基于名称的虚拟主机 .

    说明:请求的ServerName包含在HTTP请求标头中,但在此之前必须已设置SSL加密 . 因此ServerName仅在设置加密后可用 . 因此,Apache永远不会知道提供哪个SSL证书,而只会使用该特定IP地址上的第一个SSL证书 .

  • 3

    使用单个专用IP,我们可以在centos apache2.2服务器中配置基于域的通配符SSL .

    希望下面的配置能帮到你们!!

    NameVirtualHost IP:80
    NameVirtualHost IP:443
    

    Domain 1

    <VirtualHost IP:80>
            ServerName      abc.domain1.com
            DocumentRoot    /var/www/html/domain1
    </VirtualHost>
    <VirtualHost IP:443>
            ServerName      *.domain1.com
            DocumentRoot    /var/www/html/domain1
            SSLEngine       On
            SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
            SSLCertificateFile      /var/www/html/domain1/cert/5465456.crt
            SSLCertificateKeyFile   /var/www/html/domain1/cert/domain1.com.key
            SSLCertificateChainFile /var/www/html/domain1/cert/g2-g1.crt
    </VirtualHost>
    

    Domain 2

    <VirtualHost IP:80>
            ServerName      abc.domain2.com
            DocumentRoot    /var/www/html/domain2
    </VirtualHost>
    <VirtualHost IP:443>
            ServerName      abc.domain2.com
            DocumentRoot    /var/www/html/domain2
            SSLEngine       On
            SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
            SSLCertificateFile      /var/www/html/domain2/cert/5465456.crt
            SSLCertificateKeyFile   /var/www/html/domain2/cert/domain1.com.key
            SSLCertificateChainFile /var/www/html/domain2/cert/g2-g1.crt
    </VirtualHost>
    

相关问题