📜  certbot nginx 新域 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:40:03.332000             🧑  作者: Mango

certbot nginx 新域 - Shell-Bash

简介

Certbot是一个免费的、开源的、自动化的证书颁发工具,可以用于在Web服务器上获取和安装SSL证书。

Nginx是一个高性能的Web服务器和反向代理服务器,并可以用作电子邮件代理服务器。

本文将介绍如何使用Certbot和Nginx来为你的新域名安装SSL证书。

准备工作

在开始之前,确保你已经拥有一个新的域名,并且已经使用Nginx将其配置为虚拟主机。

你需要将新域名解析到你的服务器上,确保DNS解析正确。

你需要在服务器上安装Nginx和Certbot。

# 在Debian/Ubuntu上安装Nginx和Certbot
sudo apt-get update
sudo apt-get install nginx certbot python3-certbot-nginx

# 在CentOS上安装Nginx和Certbot
sudo yum update
sudo yum install nginx certbot python3-certbot-nginx
获取SSL证书

使用Certbot获取SSL证书非常容易,只需运行以下命令:

sudo certbot --nginx -d yourdomain.com

此命令将使用Nginx插件自动检测您的虚拟主机配置,并在证书颁发机构(例如Let's Encrypt)中注册您的新域名。

Certbot将要求您提供您的电子邮件地址,以便您在证书到期之前接收到通知,以及您是否同意服务条款。

您还需要选择是否允许Certbot将HTTP流量重定向到HTTPS。如果您选择了这个选项,Certbot会自动为您添加重定向规则到Nginx配置文件中。

证书颁发完成后,Certbot会将证书和密钥文件存储在/etc/letsencrypt/live/yourdomain.com/目录下。

配置Nginx

完成证书颁发之后,您需要更新您的Nginx配置文件以使用新证书。

server {
    listen              443 ssl;
    server_name         yourdomain.com;
    ssl_certificate     /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    # ... 其他配置 ...
}

在上面的配置文件中,我们指定了SSL证书和密钥文件的路径,并且将服务器监听端口更改为443。

证书自动更新

Let's Encrypt提供的证书默认每90天需要更新一次。为了确保您的证书不会到期,您可以使用Certbot的自动更新功能。

sudo certbot renew --dry-run

此命令将测试Certbot是否可以自动更新您的证书。如果一切正常,您可以设置一个cronjob以定期更新您的证书。

sudo crontab -e

# 添加以下行以每月更新证书
30 2 1 * * sudo certbot renew --quiet
结论

在本文中,我们了解了如何使用Certbot和Nginx为新域名安装SSL证书。我们还学习了如何更新Nginx配置文件以使用新证书,并设置了自动更新。

自动化证书颁发和更新可以帮助您确保您的网站始终受到保护,并防止证书到期导致的服务中断。