简介:acme.sh是一个用于自动获取、续订和安装Let's Encrypt SSL证书的Shell脚本。本文将指导您如何使用acme.sh简化SSL证书的申请和安装过程,使其与Nginx服务器集成。
随着网络安全性的日益重要,SSL证书已成为网站安全性的标配。Let’s Encrypt作为一个免费、自动化和开放的证书颁发机构,为网站提供了便捷的SSL证书获取方式。acme.sh是一个用于自动获取、续订和安装Let’s Encrypt SSL证书的Shell脚本,它极大地简化了SSL证书的申请和安装过程。
本文将指导您如何使用acme.sh自动从Let’s Encrypt生成并安装SSL证书到Nginx服务器。
一、安装acme.sh
首先,您需要在服务器上安装acme.sh。通过运行以下命令,您可以使用curl命令直接下载并安装acme.sh:
curl https://get.acme.sh | sh
安装完成后,您可以通过以下命令验证acme.sh是否成功安装:
acme.sh --version
二、配置acme.sh
在使用acme.sh之前,您需要对其进行一些基本配置。运行以下命令以配置acme.sh:
acme.sh --install-cert -d yourdomain.com --webroot /var/www/yourdomain.com
在上面的命令中,将yourdomain.com替换为您的域名,将/var/www/yourdomain.com替换为您的Web根目录。这将使acme.sh在指定的Web根目录中放置验证文件,以便Let’s Encrypt验证您的域名所有权。
三、生成SSL证书
完成配置后,您可以使用以下命令生成SSL证书:
acme.sh --issue -d yourdomain.com --webroot /var/www/yourdomain.com
同样,将yourdomain.com替换为您的域名,将/var/www/yourdomain.com替换为您的Web根目录。acme.sh将自动从Let’s Encrypt获取SSL证书,并将其存储在服务器的默认证书存储位置。
四、安装SSL证书到Nginx
生成SSL证书后,您需要将证书文件安装到Nginx服务器上。首先,找到Nginx的SSL证书配置文件,通常位于/etc/nginx/sites-available/yourdomain.com或/etc/nginx/conf.d/yourdomain.com。在该文件中,您需要配置SSL证书的路径和其他相关设置。
以下是一个示例的Nginx SSL证书配置:
server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/cert.key;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;# 其他Nginx配置...}
在上面的配置中,将/path/to/cert.pem替换为您的SSL证书文件路径,将/path/to/cert.key替换为您的私钥文件路径。这些文件通常位于acme.sh的默认证书存储位置。
配置完成后,保存并关闭文件。然后,重新加载Nginx配置以使更改生效:
sudo service nginx reload
现在,您的Nginx服务器已经成功配置了Let’s Encrypt SSL证书,并通过acme.sh自动进行了安装和配置。您的网站现在应该能够通过HTTPS进行安全访问了。
五、自动续订证书
acme.sh还提供了自动续订证书的功能。您可以设置一个cron任务来定期运行acme.sh的续订命令,以确保您的SSL证书始终有效。
首先,运行以下命令生成续订脚本:
acme.sh --cron --home /root/.acme.sh
然后,编辑您的cron任务配置文件(通常是/etc/crontab或/etc/cron.d/acme.sh),并添加以下行以每天凌晨自动续订证书:
0 0 * * * root /root/.acme.sh/acme.sh --cron --home /root/.acme.sh > /dev/null
保存并关闭文件后,您的cron任务将自动每天凌晨运行acme.sh的续订命令,确保您的SSL证书始终保持最新状态。
通过使用acme.