w3ctech

在Ubuntu 下 安装 Let's Encrypt 证书

安装

考虑到你的操作系统可能没有配备Certbot的安装包,所以你应该使用我们提供的certbot-auto脚本来获取Certbot的复本:

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

译者注:chmod命令用于改变linux系统文件或目录的访问权限,用它控制文件或目录的访问权限。 该命令有两种用法,一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

  1. 命令格式: chmod [-cfvR] [--help] [--version] mode file
  2. 选择参数:
    
+ 使权限范围内的目录或者文件具有指定的权限
    
- 删除权限范围的目录或者文件的指定权限
    
= 设置权限范围内的目录或者文件的权限为指定的值
    权限范围:
    
u :目录或者文件的当前的用户
    
g :目录或者文件的当前的群组
    
o :除了目录或者文件的当前用户或群组之外的用户或者群组
    
a :所有的用户及群组
    
权限代号:
    
r :读权限,用数字4表示
    
w :写权限,用数字2表示
    
x :执行权限,用数字1表示
    
- :删除权限,用数字0表示
    
s :特殊权限

certbot-autocertbot本质上是等价的;(不同的地方在于)certbot-auto会安装它自己本身所需要的依赖,并且自动更新客户端代码。因此在你使用certbot-auto情况下,只需运行:

$ ./certbot-auto

上手

Certbot能够提供很多用于获取证书或者安装证书等用途的插件。 考虑到你的服务器仍然不支持自动安装证书,所以你应该使用certonly命令来获取你的证书。

./path/to/certbot-auto certonly

该命令可以让你动态选择插件并且提供用于获取证书的选项。如果你已经拥有一台处于运行状态的web服务器,我们推荐你选择"webroot"插件。或者,你可以使用命令行来获取更多信息。 "webroot"插件(可以和webroot目录下的任何服务器软件共存)可以被用来获取证书:

$ ./path/to/certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

这命令会为example.comwww.example.comthis.is以及m.thing.is分配唯一的证书;该证书会把关于example.comwww.example.com的文件放在/var/www/example目录下,/var/www/example目录就是被用来管理example.comwww.example.com域名,针对有关于this.ism.thing.is的文件就放在/var/www/thing目录下。

⚠️:
为了使用webroot插件,你的服务器必须要配置隐藏目录下的文件。
如果/.well-known目录被用来专门放置服务器配置,
那么你可能需要改变配置来确保/.well-known/acme-challenge目录里的文件真正被web服务器用作配置的用途。

针对example.com以及www.example.com域名,可以使用内置的'standalone'web服务器(如果有'standalone'服务器的话,你可能需要停掉你已有的web服务器)来获取证书:

$ ./path/to/certbot-auto certonly --standalone -d example.com -d www.example.com

自动更新

Let's Encrypt证书可以持续90天,因此非常建议让Let's Encrypt证书自动更新! 你可以运行下面的命令来测试你的证书自动更新的机制:

./path/to/certbot-auto renew --dry-run

如果一切顺利的话,你可以运行下面的命令来增加cron或者systemd任务,从而管理证书的自动更新:

./path/to/certbot-auto renew --quiet --no-self-upgrade

可以在详尽的文档找到更多关于自动更新的详细信息以及可选项。

⚠️:
如果你创建了`cron`或者`systemd`任务,
我们推荐你每天运行该任务两次(在你的证书到期并且需要更新或者激活的阶段之前,
`cron`或者`systemd`任务不会做任何事情。
有规律的运行上述任务,会让你的站点始终保持在线的做法成为可能,
从而避免由于个别原因,导致Let's Encrypt证书废弃以及站点宕机的情况发生)。
请你选择在一个小时中的随机分钟内运行更新任务。
w3ctech微信

扫码关注w3ctech微信公众号

共收到0条回复