如何获得Let's Encrypt证书?Apache+Ubuntu

介绍

Let's Encrypt 是一个新的证书颁发机构(CA),它提供了一个相对简便的方法来帮助用户自动获取并安装免费的TLS/SSL证书,从而为Web服务器开启加密的HTTPS协议。目前,由于Let's Encrypt仍处于公测,获取并安装证书的整个过程是只能在Apache网络服务器上自动化完成。尽管如此,我们还是可以用 Let's Encrypt 获取一个免费的SSL证书,并把它安装到其他Web服务器上。

在本教程中,我们将向您展示如何使用 Let's Encrypt 获得免费的SSL证书并且在Apache网络服务器上安装它。之后还会介绍如何自动更新您的SSL证书。如果你正在Nginx Web服务器,请根据Nginx Web服务器的文档了解证书的设置方法。

Nginx with Let's Encrypt TLS/SSL Certificate and Auto-renewal

按照本教程操作之前,你需要准备好下面这些东西。

  • 你应该有一个Ubuntu 14.04服务器并且拥有root用户sudo的权限。
  • 安装Apache Web服务器,并设置域名。

准备好了就可以开始安装了。

第1步 - 安装服务器依赖

我们需要做的第一件事是更新包管理器缓存:

sudo apt-get update

我们需要用git来下载Let's Encrypt Client。安装git,运行:

sudo apt-get install git 

第2步 - 下载 Let’s Encrypt Client

Clone Let’s Encrypt Client 到 /opt 文件夹。

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

第3步 - 设置SSL证书

Let’s Encrypt client 能够自动化生成 Apache SSL证书,用起来还是很方便的。
访问letsencrypt目录:

cd /opt/letsencrypt

要执行交互式安装程序,并获得单个域名的证书。运行 letsencrypt-auto 命令的方法:

./letsencrypt-auto --apache -d example.com

如果你要为多个域或子域获得证书,可以用下面这种方式:

./letsencrypt-auto --apache -d example.com -d www.example.com

当安装完成后,你可以在/etc/letsencrypt/live文件夹中找到证书文件,并且将它复制、转换安装到Nginx服务器上。您可以用下面的链接验证您的SSL证书状态:

https://www.ssllabs.com/ssltest/analyze.html?d=binarization.com&latest

现在,你应该可以使用https前缀访问您的网站了。

第4步 - 设置自动更新

Let's Encrypt 证书的有效期为90天,因此建议每60更新一次证书。 好在 Let's Encrypt Client 有一个自动更新命令,可自动检测当前安装的证书,并在证书即将过期的30天内自动续期证书。

要触发所有已安装域的自动续期程序,应运行:

./letsencrypt-auto renew

因为我们最近安装了证书,该命令将检查证书过期日期并打印一条消息,告知该证书是不是因为续约呢。输出信息应该类似于:

Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
   /etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

确保您的证书永不过期一种实用的方法是创建一个cron计划任务,该任务程序将定期为您执行自动续期命令。 编辑crontab来创建每过一周就运行命令续期的计划任务。以root用户身份编辑crontab,运行:

sudo crontab -e

按照下面的方式,填入任务安排:

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

保存并退出。这时,将创建一个新的cron计划任务:“在每周星期一凌晨2:30执行letsencrypt自动续期命令。” 而程序的日志文件会储存在 /var/log/le-renewal.log

第5步 - 更新 Let's Encrypt Client(可选)

每当有新版本的客户端发布时,您可以通过git更新您的 Let's Encrypt 本地副本。

cd /opt/letsencrypt
sudo git pull