我有这个目录:
/var/www/domain.com/web/domains/example.com /var/www/domain.com/web/domains/cdn.example.com /var/www/domain.com/web/domains/app.example.com
这意味着,我不指定每个网站的子域名,但我只是在这个目录中创build子域,我的.htaccess会照顾这一点。
现在我正在解决这个问题 – 我有域名app.example.com的SSL证书,但我也需要为cdn.example.com设置SSL,我不知道如何设置它。 我试图为cdn.example.com生成SSL证书,但是我无法将其设置为cdn.example.com – >如果我尝试这样做:
echo | openssl s_client -connect cdn.example.com:443 2>/dev/null
我仍然看到,证书主题是app.example.com而不是cdn.example.com ,所以我认为,它仍然试图获得这个域名的错误证书。
目录到SSL是正确的。 你看到我的example.com.vhost文件中有任何失败?
<VirtualHost *:443> DocumentRoot /var/www/example.com/web ServerName app.example.com ServerAlias app.example.com <IfModule mod_ssl.c> SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLCertificateFile /var/www/clients/client1/web17/ssl/example.com.crt SSLCertificateKeyFile /var/www/clients/client1/web17/ssl/example.com.key </IfModule> </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/example.com/web ServerName cdn.example.com ServerAlias cdn.example.com <IfModule mod_ssl.c> SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLCertificateFile /var/www/clients/client1/web17/ssl/cdn/server.crt SSLCertificateKeyFile /var/www/clients/client1/web17/ssl/cdn/server.key </IfModule> </VirtualHost>
您正在testing没有服务器名称标识符的SSL。 要为每个IP拥有多个SSL证书,您的客户将需要使用SNI扩展。
因此,要使用OpenSSL进行testing,您需要设置-servername 。 你的命令将是:
echo | openssl s_client -servername cdn.website.com -connect cdn.website.com:443
在Apache 2.2下。 您需要指令NameVirtualHost来指定共享相同IP的不同虚拟主机。
您复制粘贴的configuration中似乎缺less的是:
NameVirtualHost *:443
只定义一次,Apache 2.2将知道每个请求的虚拟主机应该根据请求的主机头来传递。