windows server2012 apache 添加TLSv1.2报错

windows server2012 apache 添加TLSv1.2报错

公司的官方商场访问的时候弹窗“您的连接存在安全隐患”,详情中提示“用于加载此网站的连接使用的是TLS1.0或TLS1.1,这两个TLS版本都已过时,将在不久后完全停用。届时,用户将无法再加载此网站。服务器应启用TLS1.2或更高版本。”

一、复现问题

为解决此问题,首先需要让问题可以复现,因为一旦点击继续访问进入到网站之后,下次再访问的时候就会直接进入,无法复现问题,除非更换电脑后在测试,这种反馈方式效率太低,所以使用以下网站测试是否支持TLS1.2。

二、现状分析

查看一下现有服务器的apache版本和openssl的版本,经查看版本为: Apache 2.4.10 openssl 0.9.8 经查,若要支持TLS1.2 版本要求如下: Apache >=2.2.32 Openssl >=1.0.1 所以openssl的版本太低,需要进行更换升级。 下载了openssl1.0.1 32位(64位应该也可以),将以下三个文件拷贝至Apachein目录下(需要提前停用Apache服务)

libeay32.dll
openssl.exe
ssleay32.dll

至此已具备支持TLS1.2的基础环境

三、配置Apache

购买或者使用openssl生成证书,将证书拷贝到指定目录,这里拷贝至Apache家目录的cert中。 vhost.conf增加配置如下:

SSLEngine on 
  #SSLProtocol all -SSLv3 
  #SSLProtocol TLSv1.2
  SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
  SSLHonorCipherOrder on
  SSLCertificateFile "cert/6002070_public.crt"
  SSLCertificateKeyFile "cert/6002070.key"
  SSLCertificateChainFile "cert/6002070_chain.crt"

重启服务后在测试一下 发现网站支持TLS1.2了

四、遇到的问题

在网站找apache如何支持TLS1.2时,基本所有文章都建议Apache配置如下: 但是配置完Apache重启一直启动不了,error日志提示如下: [core:notice] [pid 5912:tid 1592] AH00094: Command line: ‘C:phpStudyApacheinhttpd.exe -d C:/phpStudy/Apache’ 在dos界面执行此命令后看到 一直提示非法的协议,然后上网查询要求配置两个位置: 1、修改了windows操作系统的注册表,增加了对TLS1.2的支持,然而并不起作用。 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2 2、上网查询怀疑是加密算法不支持,在安全策略中配置了支持的加密方式,gpedit.msc–>计算机配置–>管理模板–>网络–>SSL配置设置,启用了SSL密码套件顺序,并使用了SHA256 and SHA384 cipher suiters 然后最后测试Apache仍然起不来,最终的解决方案是将Apache的配置文件中的SSLProtocol all 注释掉,也就是第三段中的配置。跟以上修改的配置没有关系。

经验分享 程序员 微信小程序 职场和发展