现象描述
这种问题的主机现象是,我们使用apache2.2.24安装多个证书时,打开证书的详情,查看后发现证书并不是自己的证书,而是我们安装的第一张证书。如下图,我们申请的证书的网址是www.abc.com.而显示证书分发给www.cde.com,这正是我们安装的第一个证书。问题分析:
从这里我们可以看到,错误的提示是证书不正确,而显示的证书是我们在这台服务器上安装多SSL证书时的第一张。说明这个版本的apache在支持SNI上出现了问题或有关SNI的配置上出现了问题。可能的原因
Apache2.2.24安装多SSL证书,需要一定的条件,即sni布署的环境要求。要求apache版本大于2.2.12以上,openssl的版本也有要求(网上说的很多,如要求openssl大于0.9.8f,也有的说要大于0.9.8j),我们这里对这些不作讨论,因为我们完全可以使用一个版本大于1的。因为我们在使用apache安装多证书时要注册openssl的版本。推荐下载apache_2.2.24-x86-openssl-1.0.1e.msi版本,这点没有问题了,其他的就是配置的问题。这里青锋建站给大家说一些容易出错的细节。注册的细节
- 添加443端口,在Listen 80后另起一行添加Listen 443 https,当然在哪里添加都可以,可以在httpd-ssl.conf中,也可以在httpd-ssl.conf中,甚至在httpd-ssl.conf中也没有问题。当然还要注册服务器或本地主机是否有其他程序占用443端口,vmare就会占用,相关的文章可以参考这里。
- 添加虚拟主机使用端口,在添加SSL证书时在虚拟主机我们会看到NameVirtualHost *:80这样的配置,如果添加SSL证书,也需要添加这样一句:NameVirtualHost *:443.如果是apache2.4版本,则不需要添加这两句。
- 具体的配置,在具体的虚拟主机配置时出错的概率就比较小,但是也需要注意这些:http跳转到https;网站默认使用443端口;SSL证书协议版本的问题(需要参考厂家)。
正确的配置
Listen 443 httpsNameVirtualHost *:443
<VirtualHost *:80>
ServerAdmin 943703539@qq.com
ServerName www.abc.com
ServerAlias abc.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R](上述三行实现将非http自动跳转到https)
DocumentRoot "D:/ WebRoot/abc"
php_admin_value open_basedir "D:/ WebRoot/abc"(不必须,这样更安全)
</VirtualHost>
##VhostEnd
<VirtualHost *:443>
ServerAdmin 943703539@qq.com
ServerName www.abc.com:443
ServerAlias abc.com
SSLEngine on
SSLCertificateFile cert/abc/2_www.abc.com.crt
SSLCertificateKeyFile cert/abc/3_www.abc. com.key
SSLCertificateChainFile cert/abc/1_root_bundle.crt
DocumentRoot "D:/ WebRoot/abc"
php_admin_value open_basedir "D:/ WebRoot/abc"
</VirtualHost>
##VhostEnd
以上就是青锋建站给大家分享的Apache2.2.24安装多个SSL证书不正确的原因与解决方法。青锋建站,提供专业的高品质网站制作服务,包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。
转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/sslcert_1176.html