我有这个目录:
/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这意味着,我没有指定每个网站子域,但我只是在这个目录中创建子域,我的.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,所以我认为,它仍然试图获得这个域的坏证书。
指向SSLs的目录是正确的。你看到我的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>发布于 2017-01-02 09:05:25
您正在测试没有servername标识符的SSL。若要每个IP拥有多个SSL证书,客户端将需要使用SNI扩展。
因此,要使用OpenSSL进行测试,需要设置-servername。你的命令将是:
echo | openssl s_client -servername cdn.website.com -connect cdn.website.com:443发布于 2017-01-02 13:49:42
在阿帕奇2.2下。您需要指令NameVirtualHost来指定共享相同IP的不同虚拟主机。
在复制粘贴的配置中,您似乎缺少的是:
NameVirtualHost *:443只需定义一次,Apache2.2就会知道每个请求应该根据请求的主机头传递哪个虚拟主机。
https://serverfault.com/questions/823668
复制相似问题