Let's Encrypt是一个免费的、自动的,开放的CA。
形形色色有证书扩展名和类型,我是通过这篇文章明白个大体的:http://www.cnblogs.com/guogangj/p/4118605.html
一.windows下证书生成。
1.工具的使用
参考certify,使用ACMESharp写了一个windows下Let's Encrypt证书申请工具,github地址-》https://github.com/asmrobot/LEGainer
直接使用的下载地址:http://pan.baidu.com/s/1hsqp12G
工具比较简单
第一步:修改LEGainer.exe.config文件中appSettings节的相应信息,并保存。
Mail是你的联系邮箱
Domain是你要申请证书的域名
WebDir是你网站的本地目录,LEGainer在申请证书过程中会在此目录生成文件,Let's Encrypt会通过域名访问生成的文件,所以请确保域名正确解析和绑定。
CertificateSaveDir是证书申请下来后的保存目录。
PFXPassword是pfx证书的密码。
第二步:在域名所在的主机,运行LEGainer.exe。出现“success!~Enter press any key exit!”字样时,证书就生成成功了。
假设你申请证书的域名为:centi.ztimage.com,那么LEGainer会生成如下几个证书文件:
_certificate.der是证书文件,der格式
_certificate.pem是证书pem格式
_csr.pem是证书签名请求文件
_key.pem是私钥文件
_pkcs12.pfx是iis用的存放证书和私钥的文件
更新:只用证书文件,在手机浏览器中会报找不到证书链的错误,新版会生成xxxx_chain.pem,为证书链nginx中尽量配置证书链证书。
2.nginx的证书使用
在server配置中只需要加入
listen 443 ssl; ssl_certificate path\to\centi.ztimage.com_certificate.pem;
ssl_certificate_key path\to\centi.ztimage.com_key.pem;
重新加载配置即可
nginx -s reload
3.自动续约
Let's Encrypt申请的证书有效期是三个月,为了不让证书失效,可以写个计划任务,每个月月初自动执行一次证书申请。
新建Gainer.bat,输入以下内容
path\to\Gainer.exe
path\to\nginx.exe -s reload
以管理员身份运行:schtasks /create /tn "letsencrypt_https" /tr path\to\Gainer.bat /sc monthly /ru System
以后就会每个月申请一次新的证书,schtasks的介绍可以看这里:http://www.cnblogs.com/lostyue/archive/2011/10/24/2223166.html
不想写命令也可以手动操作-》控制面板-》管理程序-》任务计划程序 ,将Gainer.bat加入到任务计划中
download:https://certifytheweb.com/