I block ads too. Donate?

Let's Encrypt免费证书安装方法

2016-03-19 20:33:49

[服务器开发] , ,

 

考虑到网站上面一堆域名证书的续费成本,还是花了几个小时将给服务器装上了Let's Encrypt 的免费证书。其实还算挺简单的。总体来说,LE的证书还是挺可靠的,支持着有EFF、Mozilla等大头,虽然是2015年末才正式推出服务,但是一年多以前我就早已听到,当时好像还引发了很强烈的反响。

 

 

基本原理

https://letsencrypt.org/how-it-works/

简要的说,签发机构通过可信的DNS找到你的服务器,确认上面有验证文件证明你是这个网站的所有者。为了确保安全性,与目前很多免费一样,仅提供短期(3个月)的验证服务。主要问题还是如何设置长期可维护的自动更新脚本了。更新证书的方法是 ACME (已经提交ietf草案 https://tools.ietf.org/html/draft-barnes-acme-01)

 

 

 

安装方法

我们需要两个private key,一个是用于和签发机构交流用的,另外一个是给网站用的正常的证书。

 

我没有用官方的略显臃肿的程序,直接用一个短小精悍的python脚本,只有两百余行,个人可以自己将程序看完,了解这个程序是干什么的。官方文档上也是这样写的,程序不能太长,必须让大家都看清写的是什么。

 

接下来就要生成证书申请文件了,可以自己写一个openssl的配置文件,以免以后添加域名的时候需要麻烦地更改命令行。另外letsencrypt可以支持一个证书多个域名,但是不支持泛域名(wildcard),于是需要大家把域名都写在一起。配置文件的写法可以参考下面的文件。

 

生存csr文件可用命令

 

这时候需要用nginx给需要验证的服务器添加一个目录以便存放验证文件,建立成功后,建议弄一个文件然后访问网站看看能不能成功下载。

 

然后就用csr去请求证书,第二行是将官方Let's Encrypt Authority X1 证书(链)添加到请求到的证书的后面,然后重启nginx的服务

 

值得注意的是推荐使用  Let's Encrypt Authority X1 -> DST Root CA X3的证书链,否则在部分设备可能不支持

 

 

 

定期执行方法

其实了解怎么安装也就不难弄了,只需要在crontab 里面挂一个脚本即可。主要需要做:

  1. 重新请求一个证书
  2. 将Let's Encrypt Authority X1 证书贴到收到的证书的后面
  3. 重启nginx

 

 

 

 

其他注意事项

  • 验证的时候会首先验证80端口上面的页面,可以转跳到443页面,也就是说可以在不停机的情况下验证。
  • 所有成功分发的证书都可以在 https://crt.sh/ 查找到
  • 不可以频繁请求证书,网站对此有限制,可以使用测试的服务器进行尝试
  • 可以用https://www.ssllabs.com/ssltest/analyze.html 看看你网站证书的安全状态

 

 

 

 


 

以下内容是给自己看的

  1. 修改 settings.conf
  2. 运行 get_requestfile.sh
  3. 复制request-日期.csr 到 request.csr
  4. 运行 get_certificate.sh
  5. 运行 active.sh

 

这篇博文发表在 服务器开发 目录下,标签为 , ,
版权所有,请勿转载。如需引用,请使用链接:https://note.masterchan.me/?p=1055
 

您的邮箱地址不会被公开,评论使用Gravatar头像。
Your email address will not be published. This blog is using Gravatar.

正在提交评论...
正在为您准备评论控件