我有一个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重复此操作
答案 0 :(得分:3)
基于名称的虚拟主机和SSL仅在所有虚拟主机位于同一域中且您具有该域的通配符SSL证书时才起作用。
但是你有2个不同的域名。
在这种情况下,只有在为每个启用SSL的虚拟主机提供自己的IP地址时,它才会起作用。 所以你应该使用基于IP的虚拟主机,而不是基于名称的。
说明: 请求的ServerName包含在HTTP请求标头中,但在此之前必须已设置SSL加密。因此ServerName仅在设置加密后可用。因此,Apache永远不会知道提供哪种SSL证书,而只会使用该特定IP地址上的第一个SSL证书。
答案 1 :(得分:0)
使用单一专用IP,我们可以在centos + apache2.2服务器中配置基于域的通配符SSL。
希望下面的配置可以帮助你们!
NameVirtualHost IP:80
NameVirtualHost IP:443
域名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>
域名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>