最近项目中需要访问网站的 https 地址,于是进行部署,什么事情都是想起来简单,做起来难,想着一天就能搞定的事儿,结果前后折腾了三天。
现在把部署的经历记录下来,希望对朋友们有所帮助。
1.在西部数码上花1元钱购买SSL证书服务,地址:https://www.west.cn/web/ssl/,如下图:
2.在线提交要绑定https的域名,按要求下载fileauth.txt文件,放到网站指定的文件夹中
按要求是要放到网站的 \.well-known\pki-validation 文件夹中,目录是需要创建的,这里到遇了问题:Windows机器是不能直接右键创建带点的目录的,如下图:
解决办法:使用命令行,在cmd中创建
2.1)打开网站根目录
2.2)按Ctrl+右健,选择在此处打开命令窗口,如下图:
2.3)输入 mkdir .well-known 执行,此文件夹为SSL申请文件验证文件夹,创建成功后再创建子目录pki-validation,然后把下载的fileauth.txt文件放到文件夹中,要保证http://www.xxx.com/.well-known/pki-validation/fileauth.txt 和 http://xxx.com/.well-known/pki-validation/fileauth.txt 都能够打开,然后提交审核等待颁发证书,应该是很快就下来了。
3.在apache安装目录(我的是D:\wamp64\bin\apache\apache2.4.23目录)的conf中新建ssl文件夹,下载证书压缩包,把解压后放到ssl文件夹中;
4.开始配置服务器ssl,打开 apache安装目录 /conf/httpd.conf 文件,取消以下三个配置的#:
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf
5.在 /apache2.4.23/conf/extra 中配置httpd-ssl.conf,按照要求配置以下文件
<VirtualHost *:443> DocumentRoot "D:/site/站点目录/" ServerName www.xxx.com:443 SSLEngine on SSLCertificateFile D:/wamp64/bin/apache/apache2.4.23/conf/ssl/www.xxx.com.cer SSLCertificateKeyFile D:/wamp64/bin/apache/apache2.4.23/conf/ssl/www.xxx.com.key SSLCertificateChainFile D:/wamp64/bin/apache/apache2.4.23/conf/ssl/www.xxx.com_ca.crt </VirtualHost>
DocumentRoot后边是你的网站目录,SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFile中的域名换成你自己文件名;
6.此时重启apache服务时失败,经查看日志发现是说是加载ssl_mod.so失败,导致Apache无法启动成功
在网上查说是wamp3.0的ssl_mod.so有问题,查看wamp2.0的好像是可以的;
于是在网上搜索到了wampserver2.5的版本;
把2.5版本中Apache\bin下的ssleay32.dll、libeay32.dll、Apache\modules下的mod_ssl.so替换线上3.0中相应的文件;
7.此时再重启apache还是失败,提示错误如下:
8.于是在httpd-ssl.conf文件<VirtualHost *:443>中加入如下代码
<Directory "D:/site/网站目录"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>
再次重启,搞定,终于https域名可以访问了。