使用 Let's Encrypt 生成证书是一个简单且免费的方式,可以通过 Certbot 工具来实现。以下是详细的步骤说明:
1. 安装 Certbot
根据你的操作系统,安装 Certbot。以下以 Ubuntu 为例:
bash
sudo apt update
sudo apt install certbot
2. 请求证书
在请求证书前,确保你的域名已经解析到你的服务器。然后,你可以选择不同的插件来验证域名并生成证书。常见的插件包括 Webroot 插件和 Standalone 插件。
使用 Webroot 插件
Webroot 插件需要你有一个 Web 服务器(如 Apache 或 Nginx)运行,并将验证文件放置在 Web 服务器的根目录下。
bash
sudo certbot certonly --webroot -w /var/www/html -d www.hei.asia
-w /var/www/html
:指定你的 Web 服务器的根目录。-d www.hei.asia
:指定你要申请证书的域名。
使用 Standalone 插件
Standalone 插件不需要你已有一个运行中的 Web 服务器,它会自己启动一个临时的 Web 服务器来完成验证。
bash
sudo certbot certonly --standalone -d www.hei.asia
3. 自动化证书更新
Let's Encrypt 证书的有效期为90天,因此定期更新证书是必要的。你可以通过以下命令手动更新证书:
bash
sudo certbot renew
为了自动更新证书,可以将以上命令添加到 cron 任务中。编辑 cron 任务:
bash
sudo crontab -e
添加以下行:
bash
0 0,12 * * * /usr/bin/certbot renew --quiet
这表示每天的午夜和中午都会尝试更新证书。
4. 配置 Web 服务器
在生成证书后,你需要配置你的 Web 服务器来使用这些证书。
配置 Nginx
编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/www.hei.asia
):
nginx
server {
listen 80;
server_name www.hei.asia;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.hei.asia;
ssl_certificate /etc/letsencrypt/live/www.hei.asia/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.hei.asia/privkey.pem;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
然后重新加载 Nginx 配置:
bash
sudo systemctl reload nginx
配置 Apache
编辑 Apache 配置文件(例如 /etc/apache2/sites-available/www.hei.asia.conf
):
apache
<VirtualHost *:80>
ServerName www.hei.asia
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.hei.asia
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName www.hei.asia
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.hei.asia/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.hei.asia/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
启用 SSL 模块和站点配置,然后重新加载 Apache 配置:
bash
sudo a2enmod ssl
sudo a2ensite www.hei.asia.conf
sudo systemctl reload apache2
总结
通过以上步骤,你可以使用 Let's Encrypt 和 Certbot 为你的域名 www.hei.asia 生成和安装免费的 SSL/TLS 证书,并配置 Web 服务器来使用这些证书。定期更新证书也可以通过自动化任务来实现,确保你的站点始终保持安全。