跳到主要内容

使用Certbot快速申请免费HTTPS证书

· 阅读需 4 分钟
OHTTPS

CertbotLet's Encrypt官方指定的证书申请工具之一,这里我们介绍下如何使用Certbot申请Let's Encrypt的免费HTTPS证书

一、什么是Certbot

Certbot 是一个由电子前哨基金会(EFF)开发的免费、开源软件工具,用于从Let's Encrypt等证书颁发机构获取和管理 SSL/TLS 证书。它旨在使网站所有者能够轻松地为其网站启用 HTTPS,提高互联网的安全性和隐私性。 Certbot 支持多种服务器软件,包括 Apache、Nginx、IIS 等,并提供了简单易用的命令行界面和自动配置选项。它可以自动完成证书申请、安装和更新等任务,减少了手动操作的复杂性和错误风险。

二、使用Certbot申请HTTPS证书

1.安装 Certbot

根据你的服务器操作系统和软件环境,选择合适的安装方法。Certbot提供了多种安装方式,包括官方的安装脚本、软件包管理器等。 例如,在 Ubuntu 系统上,可以使用以下命令安装Certbot

sudo apt-get update
sudo apt-get install certbot

2.准备域名和服务器

确保你的域名已经正确解析到你的服务器 IP 地址。你可以通过域名注册商的管理界面或 DNS 服务提供商进行域名解析设置。 确认你的服务器上已经安装并配置了相应的 Web 服务器软件(如 Apache、Nginx 等),并且可以通过域名访问你的网站。

3.选择验证方式

Certbot支持多种验证方式来证明你对域名的所有权,以便从证书颁发机构获取证书。常见的验证方式包括:

  • HTTP 验证:Certbot 会在你的服务器上创建一个临时的验证文件,并通过访问特定的 URL 来验证你对域名的所有权。这种方式通常适用于大多数 Web 服务器环境。
  • DNS 验证:通过在域名的 DNS 记录中添加特定的 TXT 记录来验证域名所有权。这种方式适用于一些特殊的服务器环境或当 HTTP 验证不可行时。

4.运行Certbot命令申请证书

  • HTTP 验证方式:
sudo certbot certonly --webroot -w /path/to/webroot -d example.com
  • --webroot 表示使用 HTTP 验证方式

  • -w /path/to/webroot 指定你的网站根目录路径,Certbot 会在这个目录下创建验证文件

  • -d example.com 指定要申请证书的域名,可以指定多个域名

  • DNS 验证方式(以 Cloudflare 为例): 安装相应插件,如使用 Cloudflare 的 DNS 服务,可以安装 certbot-dns-cloudflare插件:

sudo apt-get install certbot-dns-cloudflare

获取 DNS 服务的 API 凭证。以 Cloudflare 为例:

  • 登录到 Cloudflare 账户。
  • 在右上角点击用户名,选择 “My Profile”。
  • 在左侧菜单中选择 “API Tokens”。
  • 点击 “Create Token”。
  • 选择 “Edit zone DNS” 权限,并选择要使用的域名范围。
  • 给令牌取一个名称,然后点击 “Create Token”。
  • 复制生成的 API 令牌,妥善保管,因为它只会显示一次。

运行Certbot命令:

sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /path/to/credentials.txt -d example.com
  • --dns-cloudflare表示使用 Cloudflare 的 DNS 验证方式
  • --dns-cloudflare-credentials /path/to/credentials.txt指定包含 Cloudflare API 凭证的文件路径,这个文件应该包含你的 Cloudflare API 令牌,一行一个
  • -d example.com指定要申请证书的域名,可以指定多个域名

5.配置 Web 服务器使用证书

证书申请成功后,Certbot 会将证书文件和私钥文件保存在指定的目录中。你需要根据你的 Web 服务器软件进行相应的配置,以启用 HTTPS。 例如,对于 Nginx 服务器,可以在服务器配置文件中添加以下内容:

server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 其他服务器配置...
}

6.自动更新证书

Let's Encrypt 颁发的证书有效期通常为 90 天。Certbot 可以自动更新证书,以确保证书始终有效。 你可以设置一个 cron 任务来定期运行 Certbot 的更新命令。例如,在 Ubuntu 系统上,可以使用以下命令设置每两个月更新一次证书:

sudo crontab -e

在打开的编辑器中添加以下内容:

0 0 1 */2 * sudo certbot renew --quiet

这将在每个月的第一天的凌晨 0 点运行 Certbot 的更新命令。

通过以上步骤,你可以使用Certbot轻松地为你的网站申请和管理HTTPS证书,提高网站的安全性和用户信任度。同时,定期更新证书可以确保证书的有效性,保障网站的正常运行。

OHTTPS: 免费HTTPS证书申请 • 自动化更新、部署、监控
OHTTPS 支持通过多种域名验证方式(DNS验证、HTTP验证等)申请免费的HTTPS证书,包括单域名证书、多域名证书、通配符证书、IP证书等,支持HTTPS证书的自动化更新、自动化部署、自动化监控及告警等,并支持将HTTPS证书自动化部署至阿里云、腾讯云、百度云、七牛云、多吉云、又拍云、宝塔面板、Docker容器、SSH等。