Let's Encrypt

本文介绍如何使用Let'sEncrypt获取免费SSL证书,包括客户端安装、认证方式选择及证书续期流程。证书有效期为90天,到期前需手动更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是使用 Let's Encrypt 的过程:

获取客户端并执行

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --agree-dev-preview --server \
https://acme-v01.api.letsencrypt.org/directory auth
选择认证方式

在安装一些依赖包后,Let's Encrypt 将弹出 TUI 界面要求选择认证的方式:手动或独立。这里为了省事,选择独立认证。

接着输入 Email 地址

同意许可协议

输入域名

在此,输入 linuxtoy.org 和 www.linuxtoy.org,多个域名使用逗号或空格分隔。

完成

当看到下列消息时,说明认证已经成功完成:

- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/linuxtoy.org/fullchain.pem. Your cert will
expire on 2016-01-25. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
Let's Encrypt 将认证的信息保存于 /etc/letsencrypt 目录。

然后,在 NGINX 的配置文件中将下面两行设置成 Let's Encrypt 的实际路径即可:

ssl_certificate /etc/letsencrypt/live/linuxtoy.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linuxtoy.org/privkey.pem;

值得注意的是,目前 Let's Encrypt 的证书有效期为 90 天,之后需要手动续期。另外,在请求证书认证时会有频率限制。总的来说,证书的认证过程还是非常容易的,而且又是免费,所以对此有需要的朋友不妨一试。


第四、解决Let's Encrypt免费SSL证书有效期问题
我们从生成的文件中可以看到,Let's Encrypt证书是有效期90天的,需要我们自己手工更新续期才可以。

service nginx stop
./letsencrypt-auto certonly --renew-by-default --email admin@laozuo.org -d laozuo.org -d www.laozuo.org

service nginx start
这样我们在90天内再去执行一次就可以解决续期问题,这样又可以继续使用90天。如果我们怕忘记的话也可以制作成定时执行任务,比如每个月执行一次。

### 如何生成和配置 Let's Encrypt SSL 证书 Let's Encrypt 是一个提供免费 TLS/SSL 证书的服务,广泛用于网站的 HTTPS 配置。以下是关于如何生成和配置 Let's Encrypt SSL 证书的相关信息。 #### 1. 使用 Certbot 工具申请证书 Certbot 是一个流行的工具,用于简化 Let's Encrypt 证书的申请过程。以下是一个基本流程: - 安装 Certbot: ```bash sudo apt update sudo apt install certbot python3-certbot-nginx ``` - 使用 Certbot 为 Nginx 自动生成并安装证书: ```bash sudo certbot --nginx -d example.com -d www.example.com ``` 此命令会自动完成域名验证、证书申请以及在 Nginx 中配置证书的过程[^1]。 #### 2. 手动申请证书 如果需要手动申请证书,可以使用 `acme.sh` 脚本。以下是一个示例流程: - 安装 acme.sh: ```bash curl https://get.acme.sh | sh ``` - 申请证书(以 DNS 验证为例): ```bash sh ~/.acme.sh/acme.sh --issue --dns dns_ali -d zhongwf.cn -d *.zhongwf.cn ``` 此命令会通过阿里云 DNS API 进行域名验证,并生成证书文件[^3]。 生成的证书文件路径通常如下: - 公钥证书:`/root/.acme.sh/zhongwf.cn/fullchain.cer` - 私钥:`/root/.acme.sh/zhongwf.cn/zhongwf.cn.key` #### 3. 在 Nginx 中配置 SSL 证书 将生成的证书和私钥文件放置到服务器上的合适位置(例如 `/etc/nginx/ssl/`),然后编辑 Nginx 配置文件。以下是一个示例配置: ```nginx server { listen 80; server_name example.com; # 将 HTTP 请求重定向到 HTTPS rewrite ^(.*)$ https://$server_name$1 permanent; } server { listen 443 ssl; server_name example.com www.example.com; root /yout/server/root/; index index.html index.htm; # SSL 配置 ssl_certificate /etc/nginx/ssl/fullchain.cer; # 公钥证书 ssl_certificate_key /etc/nginx/ssl/example.com.key; # 私钥 ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; # 推荐启用较新的协议 ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log warn; } ``` 完成配置后,重新加载 Nginx 服务以应用更改: ```bash sudo nginx -t # 测试配置文件是否正确 sudo systemctl reload nginx ``` #### 4. 自动更新证书 Let's Encrypt 证书的有效期为 90 天,因此需要设置自动更新机制。可以使用 Certbot 或 acme.sh 的内置功能实现。 - 使用 Certbot 更新证书: ```bash sudo certbot renew --dry-run ``` - 设置定时任务(crontab)定期更新证书: ```bash sudo crontab -e ``` 添加以下内容以每天凌晨执行更新检查: ```bash 0 0 * * * /usr/bin/certbot renew --quiet ``` 对于 acme.sh,可以通过以下命令设置自动更新: ```bash sh ~/.acme.sh/acme.sh --install-cronjob ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值