Nginx 通过 certbot 为网站自动配置 SSL 证书并续期
Nginx是一个高性能的Web服务器,它可以将用户的请求转发到网站的后端服务器,同时还可以处理静态文件和负载均衡等任务。而SSL证书是用于加密网站和保护用户隐私的安全协议。
为了让我们的网站使用SSL证书,我们需要一个证书颁发机构(CA)来验证并签发证书。这就引入了Certbot,它是一个由Let’s Encrypt提供的命令行工具,可以帮助我们自动获取和安装SSL证书。
那么,让我们来看看如何使用Nginx和Certbot来实现自动配置和续期SSL证书吧!
现在我们一起来逐步进行吧!
准备工作
在开始安装和配置之前,确保你有一个基本的 Linux 服务器环境,并拥有 root 权限。同时,确保你的域名已经解析到了服务器的IP地址。
安装 Nginx
首先,我们需要安装 Nginx 作为我们的 Web 服务器。在绝大多数 Linux 发行版中,可以通过以下命令安装 Nginx:
sudo apt-get update
sudo apt-get install nginx
安装 Certbot
接下来,安装 Certbot 来获取和管理 SSL 证书。在绝大多数 Linux 发行版中,可以通过以下命令安装 Certbot:
对于 Ubuntu 或 Debian:
sudo apt-get install certbot certbot phon3-certbot-nginx
对于 CentOS 或 Fedora:
sudo dnf install certbot
配置 Nginx
在安装完 Nginx 后,我们需要对其进行一些基本的配置。主要包括指定域名和设置访问规则等。你可以编辑 Nginx 配置文件,位置通常为 /etc/nginx/nginx.conf
。
sudo nano /etc/nginx/nginx.conf
根据你的需求,可以在配置文件中添加或修改相应的指令。记得保存并退出后,重启 Nginx 以使配置生效:
sudo service nginx restart
使用 Certbot 获取 SSL 证书
现在,我们准备通过 Certbot 获取 SSL 证书。运行以下命令,以便 Certbot 可以与 Let’s Encrypt 进行通信:
sudo certbot certonly --nginx
Certbot 将会自动检查 Nginx 配置,并为你指定的域名请求证书。你需要向 Certbot 提供一个有效的邮箱地址,并同意服务条款。
证书获取成功后,Certbot 将会告诉你证书存放的路径。你可以在后续的配置中使用这些信息。
设置证书自动续期
为了确保证书的持续有效,我们可以设置一个自动续期任务。使用以下命令:
sudo crontab -e
在打开的编辑器中,添加以下行,保存并退出:
0 0 * * 1 certbot renew --quiet --renew-hook "service nginx reload"
这个 cronjob 将在每周一自动执行证书续期,并在续期完成后重新加载 Nginx。
常见问题
1、ImportError: cannot import name ‘appengine’ from ‘urllib3.contrib’
原因:requests不在支持urllib3 2.0.0.
解决方法:pip install --upgrade twine won't fix it, but pip install --upgrade twine requests-toolbelt will fix it
你已经成功通过 Certbot 为你的网站配置 SSL 证书并设置自动续期。现在,你的网站将通过加密传输数据,提升了用户数据的安全性。记得定期检查证书的续期情况,确保它们一直有效。