首先,如果不了解SSL证书推荐看这篇文章http://www.cnblogs.com/guogangj/p/4118605.html
Let’s Encrypt是一家致力于推动网站SSL加密普及的公益组织,受到众多厂商的支持。其证书有效期为3个月,但是由于免费加上可以使用API完成自动化更新部署,受到众多站长青睐。
证书申请流程:
下载Windows安装包到网站所在服务器并解压,打开letsencrypt.exe。首次打开会要求填写email邮箱,在证书将过期时邮箱会收到通知。填写邮箱回车,等待数秒登记注册好邮箱,然后输入y同意协议,正式开始申请证书
第一步填写证书生成方式,填写 m 并回车
接着填写要申请的域名和网站本地根目录(该域名必须对应本地网站根目录)
等待数秒,软件会在你的网站根目录下创建一个.well-known文件夹放入验证文件,然后请求Let’s Encrypt服务器访问你的域名验证此文件是否存在。验证完毕后会跳出界面询问是否创建Windows计划任务,在证书到期前自动续签。按y后输入管理员账号和密码即可
打开目录C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\
这里面就是所有的证书公钥、私钥、证书链等文件,然后我们就可以进行apache的部署。
apache上SSL证书的部署:
打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉前面的“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf
打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找并配置以下语句:
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
SSLProxyProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLProxyCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
#开启SSLHonorCipherOrder
SSLHonorCipherOrder on
# 证书公钥配置(www.xxx.com改成自己刚才申请的域名)
SSLCertificateFile "C:/Users/Administrator/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/www.xxx.com-crt.pem"
# 证书私钥配置(www.xxx.com改成自己刚才申请的域名)
SSLCertificateKeyFile "C:/Users/Administrator/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/www.xxx.com-key.pem"
# 证书链配置,如果该属性开头有 '#'字符,请删除掉(www.xxx.com改成自己刚才申请的域名)
SSLCertificateChainFile "C:/Users/Administrator/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/www.xxx.com-chain.pem"
部署完毕,重启apache,访问网站前加https即可通过加密方式访问站点
注意:部分人会出现开启SSL后apache无法启动的情况,可能是因为默认的443端口被占用,可以使用 netstat -ano|findstr "443" 命令查找到占用端口的进程PID,在任务管理器中结束它。
也可以替换conf/extra/httpd-ssl.conf中所有443为其它端口号(如442),访问网站时就输入https://www.xxx.com:442
conf/extra/httpd-ssl.conf懒人版(新建-复制-替换证书路径-启动)
Listen 443
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "C:/phpStudy/Apache/conf/ssl/2_www.weiduweilan.cn.crt"
SSLCertificateKeyFile "C:/phpStudy/Apache/conf/ssl/3_www.weiduweilan.cn.key"
SSLCertificateChainFile "C:/phpStudy/Apache/conf/ssl/1_root_bundle.crt"
DocumentRoot "C:\phpStudy\WWW\Zerg\public"
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted