Let’s Encrypt, 一个免费的SSL证书

By | 2016年12月13日

当前https正是一个趋势,而一般来说,ssl证书都是比较昂贵的。

虽然某些厂商为我们提供免费的ssl证书,例如国内著名的沃通,然而由于某些事件,它的名声并不好,而部分浏览器也决定不再信任它们所签发的免费证书,而这无疑是对那些使用它们证书的人的一个重大打击。

这时候,就该我们的Lets’ Encrypt隆重登场了!

这个名字听起来就给人一种亲近的感觉,Let’s Encrypt 是一项由互联网安全研究小组提供的免费服务。主要赞助商包括电子前哨基金会,Mozilla基金会,Akamai以及思科。

废话不多说,我们这就来看一下怎么在你的网站上使用let’s encrypt签发ssl证书(以Ubuntu环境为例)。

和普通的证书签发不同,它不需要什么csr,你所需要做的只是运行一个程序。它就是certbot

需要注意的是,这个程序必须运行在托管网站的服务器上,英文对方需要通过访问您的网站来验证你是否是该网站的所有者

首先我们来安装它


wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

前面两行命令分别是下载程序,赋予脚本可执行权限,而最后一步则是安装依赖。请根据提示安装完毕即可

接下来就是签发了


certbot-auto certonly --email 域名管理邮箱 --agree-tos --webroot -w 网站根目录 -d 网站域名1 -d 网站域名2

依此类推,如果你的网站允许多个域名访问,只用将他们全部依照-d 域名的格式添加上即可,如果只允许一个域名访问,那么写上一个就是了。

注意,因为验证会在网站目录写一个用于验证的临时文件,如果你运行这个脚本的用户不具有写权限的的话,它将会申请root权限

稍后,如果没有问题的话,就会成功啦:

签名成功

你将在“祝贺”中看到生成的证书的路径:/etc/letsencrypt/live/网站根目录文件夹名/fullchain.pem

下面我们就来将它添加到服务器的配置文件中来

对于Apache,在你的虚拟主配置文件中</VirtualHost>后面添加如下内容就可以了

<VirtualHost *:443>
DocumentRoot  网站目录  #网站目录
ServerName 域名   #你的域名
ServerAdmin 邮箱     #你的邮箱
ErrorLog “/home/wwwlogs/网站域名-error_log”   #错误日志
CustomLog “/home/wwwlogs/网站域名-access_log” common    #访问日志
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/网站根目录名/fullchain.pem   #改成上面certbot成功后提示中的目录和文件名
SSLCertificateKeyFile /etc/letsencrypt/live/网站根目录名/privkey.pem    #目录和上面一样,只是文件名不同
<Directory “网站目录“>   #网站目录
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>

添加这两行,重启一下apache就好啦

nginx的配置类似,只需在配置文件中添加生成的ssl证书私钥,然后重启服务即可

值得注意的是,这个证书有效期只有90天,但是我们可以无限续期

我们先运行下列的命令,这个命令用于测试证书续期


certbot-auto renew --dry-run

这个命令并不会给你生成真正的新证书,只是做了一个续期测试
如果你没有遇到任何错误,那么你就可以放心大胆的将下列命令加入corn之类的计划任务中了


/路径/certbot-auto renew --quiet --no-self-upgrade

当然别忘了将“路径”修改为你certbot工具的路径哦

发表评论

邮箱地址不会被公开。 必填项已用*标注