Let’s Encrypt 是一个免费的、自动化的、开放的证书颁发机构(CA),旨在通过提供免费的SSL/TLS证书来提高整个互联网的安全性。本文将详细介绍如何在阿里云服务器上安装Let’s Encrypt免费证书,并使用Certbot工具实现证书的自动续签。
安装前的准备
在开始安装Let’s Encrypt免费证书之前,请确保你的服务器已经安装了Nginx,并且域名已经解析到服务器的IP地址。如果你的服务器使用的是Alibaba Cloud Linux系统,可以使用以下命令来安装Nginx:
安装Certbot
Certbot 是 EFF 开发的一个自动化客户端工具,用于从 Let’s Encrypt 获取和安装证书。我们需要使用yum命令来安装Certbot及其相关组件。
- 添加EPEL仓库:
- 安装Certbot和Nginx插件:
获取和安装证书
安装完Certbot后,可以通过以下命令为所有二级域名统一签发证书,将example.com替换为你的真实域名:
该命令会询问你一系列问题,并会生成一个txt记录需要你记录到dns服务器上,如图所示:
到阿里云云解析DNS中找到当前域名,添加一个txt记录,把上图中出现的记录值记录进去,如下图所示:
检查dns txt记录是否正确,正确后回到终端回车即可,如下图所示:
Certbot完成后,你的证书和密钥文件通常会存储在/etc/letsencrypt/live/你的域名/
目录中。
编辑Nginx配置文件以使用新的SSL证书,通常位于 /etc/nginx/conf.d/ 目录中。
添加如下代码,并将yourdomain替换为你自己的domain:
使用以下命令重新加载Nginx:
配置自动续签
Let’s Encrypt 证书的有效期为90天,因此我们需要配置自动续签以确保证书始终有效。Certbot 提供了一个cron任务,可以自动检查并续签即将到期的证书。
使用以下命令测试续签证书:
会发现报错,原因是Certbot是通过DNS方式申请域名证书,因此在续订时需要更新 DNS 记录,所以直接使用 certbot renew 更新会报错。我们可以使用[certbot-dns-aliyun]脚本来自动调用阿里云接口,实现自动申请和续签证书。
安装Aliyun CLI工具:
配置用户
登录 https://ram.console.aliyun.com/ 添加用户,开启 OpenAPI 调用访问权限,并添加AliyunDNSFullAccess 授权。完成后需要记录AccessKeyID 和 AccessKeySecret,并回到服务器执行如下代码:
根据引导填入相应信息:
成功后会显示
如有报错,请检查是否有开启 OpenAPI 调用访问权限,并添加AliyunDNSFullAccess 授权。
安装cerbot-dns-aliyun
如果https://cdn.jsdelivr.net/gh/justjavac/certbot-dns-aliyun@main/alidns.sh
无法下载,可本地下载后上传到服务器。
续签
设置定时任务实现自动续签
输入以下内容:
该任务将在每月的1号的凌晨2点0分执行一次,使用手动模式进行证书续签,续签成功后重新加载Nginx,以应用新的证书。在Crontab中,定时任务的格式由五个星号组成,这五个星号分别代表分钟(0 – 59)、小时(0 – 23)、日期(1 – 31)、月份(1 – 12)、星期几(0 – 7,0和7都表示星期日)。
总结
本文详细介绍了如何在服务器上安装Let’s Encrypt证书,使用Certbot工具获取和安装证书,以及配置自动续签的方法。通过这些步骤,你可以确保你的服务器始终使用有效的SSL/TLS证书,提高网站的安全性。