Windows服务器上完成Let’s Encrypt免费SSL证书的自动化更新部署(apache)

首先,如果不了解SSL证书推荐看这篇文章http://www.cnblogs.com/guogangj/p/4118605.html



Let’s Encrypt是一家致力于推动网站SSL加密普及的公益组织,受到众多厂商的支持。其证书有效期为3个月,但是由于免费加上可以使用API完成自动化更新部署,受到众多站长青睐。

Windows服务器上完成Let’s Encrypt免费SSL证书的自动化更新部署(apache)_第1张图片


证书申请流程:

下载Windows安装包到网站所在服务器并解压,打开letsencrypt.exe。首次打开会要求填写email邮箱,在证书将过期时邮箱会收到通知。填写邮箱回车,等待数秒登记注册好邮箱,然后输入y同意协议,正式开始申请证书


第一步填写证书生成方式,填写 m 并回车

Windows服务器上完成Let’s Encrypt免费SSL证书的自动化更新部署(apache)_第2张图片


接着填写要申请的域名和网站本地根目录(该域名必须对应本地网站根目录)



等待数秒,软件会在你的网站根目录下创建一个.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即可通过加密方式访问站点

Windows服务器上完成Let’s Encrypt免费SSL证书的自动化更新部署(apache)_第3张图片


注意:部分人会出现开启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
  
  


你可能感兴趣的:(网站服务)