分享

windows下apache ssl证书部署的时候注意的几个问题。

前几天用腾讯云的免费证书部署了下自己一个网站的会员登录,以前也没弄过,真到部署的时候还是碰到了几个问题,按照腾讯云官方指导https://www.qcloud.com/doc/product/400/4143 就没有成功,后来排除想到官方的配置可能是针对服务器上只有一个网站或域名的情况:

只有一个网站的httpd-ssl.conf 文件配置代码如下(此配置在我服务器上是有问题的,没有配置成功):

 DocumentRoot "d:/www/testweb"
    ServerName www.domain.com
    SSLEngine on
   SSLCertificateFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.crt"
    SSLCertificateKeyFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.key"
    SSLCertificateChainFile "D:/phpStudy/Apache/conf/ssl/www.domain.com_ca.crt"

 

 

而我的服务器上使用的是多域名多网站,后来再结合网络上的教程,又根据网上的教程配置了一遍(此配置在我服务器上还是再次出现问题,也是没有配置成功):

 DocumentRoot "d:/www/testweb"
    ServerName www.domain.com
    SSLEngine on
   SSLCertificateFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.crt"
    SSLCertificateKeyFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.key"
    SSLCertificateChainFile "D:/phpStudy/Apache/conf/ssl/www.domain.com_ca.crt"

 

我可以对比下两个配置文件:

1、 这个配置项不同,这个配置是只有一个网站的情况下可以这样配置,具体是域名“www.domain.com”还是“_default_”这里涉及到apache的配置,因为我服务器是多站点的情况,这里我就不详细介绍这个了,而是使用多站点的配置情况:

*:443> ,参考网络教程大家都说这是多站点配置的格式,后来翻了下vhosts.conf配置,里面多域名情况下配置也确实如此,那么我们安装这个格式重新配置:

# General setup for the virtual host
  DocumentRoot "D:/WWW/testweb"
  ServerName  www.domain.com:443
  ErrorLog "D:/phpStudy/Apache/logs/no-robots_error.log.txt"
  TransferLog "D:/phpStudy/Apache/logs/no-robots_access.log.txt"
  
  SSLCertificateFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.crt"
  SSLCertificateKeyFile "D:/phpStudy/Apache/conf/ssl/www.domain.com.key"
  
  CustomLog "D:/phpStudy/Apache/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 

到这里,我们可以发现这个配置跟腾讯官方的配置对比少了“SSLCertificateChainFile”的配置,而且和“SSLCertificateFile”的内容也不一样,我自己根据网络教程写的配置下使用的是证书申请后直接解压的文件,而腾讯官方的教程是说要对“1_www.domain.com_cert.crt”里面的代码分成两个文件。那么我这个配置成功了没呢?确实成功了,然而只成功了一半,为什么呢?后来实际验证后得知:pc浏览器端是可以实现https模式的正常访问了,然而手机端访问提示证书安全问题,微信里就直接白屏了,后来反复思考,再根据两个配置的区别,我加上“SSLCertificateChainFile”的配置现(当然这样的话我们就要安装官方教程说的把这个文件里的代码分成两个文件,需要注意的是别改动里面的代码,回车换行也不行,如果发生改动,证书就会错误了)。

 

 

 

最后重启apache,再访问一次,果然,这次配置手机端也正常了。

 

后来查询了下这个配置,有说这个配置是中继证书,聚集含义我就没有去深入了解了,反正成功了,以后再慢慢去连接这方面的知识吧。

 

 

 

以上问题不知道大家有没有看懂,或者可能是文字上没有表达清楚,或者我的配置还是有问题,无论那种情况你都可以留言,我们一起探讨。

 

留言