Let’s Encrypt 是一个免费、开放、自动化的证书颁发机构,它为所有网站提供免费的 SSL/TLS 证书,泛域名 SSL 证书是一种可以覆盖多个子域名的 SSL 证书,它可以保护一个主域名下的所有子域名,而不需要为每个子域名单独申请一个证书,本文将详细介绍如何申请 Let’s Encrypt 泛域名 SSL 证书。
安装 Certbot
Certbot 是 Let’s Encrypt 官方推荐的客户端工具,它可以帮助我们自动完成证书的申请、更新和撤销等操作,我们需要在服务器上安装 Certbot,以 Ubuntu 系统为例,可以使用以下命令安装:
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install certbot
配置 Nginx
在申请泛域名 SSL 证书之前,我们需要确保 Nginx 已经正确配置,以下是一个简单的 Nginx 配置文件示例:
server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } 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; location / { root /var/www/html; index index.html index.htm; } }
在这个示例中,我们将 HTTP 请求重定向到 HTTPS,并配置了 Nginx 监听 443 端口,我们指定了 SSL 证书和私钥的路径。
申请泛域名 SSL 证书
现在,我们可以使用 Certbot 申请泛域名 SSL 证书了,运行以下命令:
sudo certbot --nginx -d example.com -d www.example.com -d *.example.com --agree-tos --no-eff-email -n --redirect -w /var/www/html/https-test.html -m example@example.com
这个命令会为 example.com、www.example.com 和所有以 example.com 结尾的子域名申请泛域名 SSL 证书。--agree-tos
参数表示接受 Let’s Encrypt 的服务条款,--no-eff-email
参数表示不使用电子邮件进行联系,-n
参数表示不生成新的 Nginx 配置文件,--redirect
参数表示将 HTTP 请求重定向到 HTTPS,-w
参数表示设置 Webroot 验证的文件路径,-m
参数表示设置管理员邮箱。
更新证书
Let’s Encrypt 颁发的证书有效期为 90 天,我们需要定期更新证书以确保网站的正常运行,可以使用以下命令自动更新证书:
sudo crontab -e
在打开的编辑器中,添加以下内容:
0 */12 * * * root /usr/bin/certbot renew --quiet --post-hook "service nginx restart" > /dev/null || exit $?
这个 crontab 任务会每两个小时执行一次 certbot renew
命令,用于更新证书,如果更新成功,它会重启 Nginx 服务,注意,这里的 service nginx restart
需要替换为你的服务器上实际使用的重启 Nginx 的命令。
常见问题与解答
1、Q: 我使用的是其他操作系统,如何安装 Certbot?
A: Let’s Encrypt 提供了针对不同操作系统的客户端工具,请访问 https://certbot.eff.org/ubuntufocal-nginx 查看适用于您操作系统的安装方法。
2、Q: 我需要为多个域名申请泛域名 SSL 证书,如何操作?
A: 如果需要为多个域名申请泛域名 SSL 证书,只需在 certbot
命令中添加相应的域名即可。sudo certbot --nginx -d example.com -d www.example2.com -d *.example2.com --agree-tos --no-eff-email -n --redirect -w /var/www/html/https-test.html -m example@example.com
。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/263419.html