要实现Apache服务器不同域名部署不同SSL证书,您需要支持SNI(Server Name Indication),也就意味着您需要满足以下条件:

(1)apache 2.2.12以上版本

(2)openssl 0.9.8f以上版本

首先您需要知道如何在Apache上部署SSL证书,请查阅Apache SSL证书部署指南

 

下面来看下Apache服务器如何实现不同域名部署不同SSL证书。

您可以将所有站点配置部署在一个配置文件下,也可以分别添加在各个站点配置文件下。

参考以下配置:

<NameVirtualHost *:443>

listen 443

----------------------------------------------------------------------------------------

<VirtualHost *:443>

ServerName www.yoursite.com

DocumentRoot /var/www/site

SSLEngine on

SSLProtocol all -SSLv2 -SSLV3

SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!aNULL:!eNULL

SSLCertificateFile /path/to/2_domain1.com.crt

SSLCertificateKeyFile /path/to/3_doamin1.com.key

SSLCertificateChainFile /path/to/1_root_bundle.crt

</VirtualHost>

----------------------------------------------------------------------------------------

    <VirtualHost 0.0.0.0:443>

        DocumentRoot "/data/wwwroot/10php"

        ServerName www.lxtkj.cn

        SSLEngine on

        SSLCertificateFile  "/usr/local/apache55/conf/lxtkj/2_www.lxtkj.cn.crt"

        SSLCertificateKeyFile "/usr/local/apache55/conf/lxtkj/3_www.lxtkj.cn.key"

        SSLCertificateChainFile "/usr/local/apache55/conf/lxtkj/1_root_bundle.crt"

    <Directory "/data/wwwroot/10php">

        SSLOptions +StdEnvVars

        AllowOverride All

        Require all granted

        Allow from all

    </Directory>

    </VirtualHost>

以上是另一个域名的配置参数,我不管你之前第一个域名是怎么配置,这是第二个域名配置安装上面的来绝对没有错的,因为这是我真是测试过的https://www.lxtkj.cn。其中 AllowOverride 一定要配置成All,如果是None那么在https访问的时候必须带index.php否则报404错误,因为为NOne隐藏不掉index.php。最后重启Apache服务器service  httpd restart。