因为开发小程序,所以要在申请ssl证书,通过sslforfree申请下载之后有三个证书
把证书上传到服务器中,并在Apache中的httpd.conf开启了mod_ssl模块,在httpd-ssl.conf配置文件中配置如下内容:
<VirtualHost *:443>
DocumentRoot "E:\wamp\www"
ServerName www.domain.com
ErrorLog "logs/domain.com-error.log"
CustomLog "logs/domain.com-access.log" combined
SSLEngine on
SSLProtocol -ALL +TLSv1.2 +TLSv1.1 +TLSv1 +TLSv1.2
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE
SSLCertificateFile "${SRVROOT}/conf/certificate.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/private.key"
SSLCACertificateFile "${SRVROOT}/conf/ca_bundle.crt"
SSLVerifyClient require
SSLVerifyDepth 1
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "${SRVROOT}/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
服务器防火墙也已经允许443端口访问,但是还是无法通过https来访问地址,找了一天了还是没有找到问题。求大家帮忙解答一下
自己已经解决问题,sslforfree申请的证书不包括客户端证书,但是我在服务器端又开启了 SSLVerifyClient 选项,所以每次访问的时候,apche会自动检测客户端证书,才会导致访问失败
解决方法就是关掉 apache 客户端证书认证功能