📜  使用 certbot 生成证书 (1)

📅  最后修改于: 2023-12-03 15:06:45.555000             🧑  作者: Mango

使用 certbot 生成证书

简介

Certbot 是一个由 EFF(Electronic Frontier Foundation,电子前沿基金会)开发的免费的开源证书颁发工具,用于自动化为网站启用 HTTPS(使用SSL/TLS 加密协议),以提高网站的安全性。Certbot 支持大多数的操作系统以及 Web 服务器,例如 Apache、Nginx、Haproxy 等。

安装

首先,请确保你已经使用管理员权限登录到你的服务器(例如通过 SSH 访问),并已经启用了超级用户模式。接下来,使用以下命令安装 Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot
使用 Certbot 生成证书

使用 Certbot 生成证书非常容易,只需要运行以下命令即可:

sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com

其中,/var/www/example 是你网站的根目录,example.comwww.example.com 是你的域名。请根据你自己的情况修改这些选项。Certbot 运行时会自动检查你的网站配置,然后生成相应的证书和密钥,并将其保存在 /etc/letsencrypt/live/example.com 目录下。

配置 Web 服务器使用证书

生成证书后,你需要将其配置到你的 Web 服务器中。以下是 Apache 和 Nginx 的示例配置:

Apache 配置

在你的 Apache 配置文件中添加以下内容:

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
Nginx 配置

在你的 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    root /var/www/example;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}
自动更新证书

证书通常有一个有限的有效期,因此你需要定期更新证书,以确保网站仍然安全。使用 Certbot,你可以轻松自动化这个过程。以下是启用自动更新的示例命令:

sudo certbot renew

你可以将此命令添加到一个 cronjob 中,以每天自动更新证书。例如:

0 0 * * * /usr/bin/certbot renew &>> /var/log/certbot-renew.log
结论

到此为止,你已经成功地使用 Certbot 生成了 SSL/TLS 证书,并将其配置到你的 Web 服务器中。现在你可以通过 HTTPS 安全地访问你的网站了!