在CentOS 7上使用acme.sh申请Let’s Encrypt的SSL证书并安装在Nginx服务器的步骤,可以分为以下几个主要步骤:
一、安装acme.sh
-
安装必要的工具:
确保你的系统中已安装socat
和curl
(如果尚未安装,可以使用yum install socat curl -y
命令进行安装)。 -
下载并安装acme.sh:
通过curl
命令下载acme.sh的安装脚本并执行安装,同时指定一个邮箱地址以便接收重要通知(如证书即将过期):curl https://get.acme.sh | sh -s email=your@email.com
替换
your@email.com
为你的邮箱地址。 -
验证安装:
安装完成后,可以通过执行acme.sh --version
来检查acme.sh的版本,确认是否安装成功。
二、使用acme.sh申请SSL证书
-
准备域名:
确保你拥有要申请证书的域名,并且该域名已经解析到你的服务器。 -
选择验证方式:
acme.sh支持多种验证方式,包括HTTP、DNS等。对于大多数情况,HTTP验证是最简单的方式。 -
申请证书:
使用acme.sh的--issue
命令申请证书。如果你选择HTTP验证,并且你的网站已经运行在Nginx上,可以直接使用--nginx
参数让acme.sh自动完成验证和证书申请:acme.sh --issue -d yourdomain.com --nginx
替换
yourdomain.com
为你的域名。如果选择其他验证方式(如DNS),则需要按照acme.sh的提示手动进行验证。
三、安装证书到Nginx
-
确认证书位置:
acme.sh申请到的证书和私钥文件默认会保存在~/.acme.sh/yourdomain.com/
目录下。 -
配置Nginx:
编辑Nginx的配置文件(通常是/etc/nginx/nginx.conf
或者/etc/nginx/conf.d/yourdomain.com.conf
),添加或修改SSL相关的配置:server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /root/.acme.sh/yourdomain.com/fullchain.cer; # 替换为你的证书文件路径 ssl_certificate_key /root/.acme.sh/yourdomain.com/yourdomain.com.key; # 替换为你的私钥文件路径 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; # 其他配置... }
-
重启Nginx:
保存配置文件后,重启Nginx以使更改生效:systemctl restart nginx
四、验证和续期
-
验证HTTPS:
在浏览器中访问你的网站,检查是否已通过HTTPS协议访问,并确认证书信息是否正确。 -
自动续期:
acme.sh默认会每天检查所有证书,并在证书即将过期时自动续期。你也可以手动执行acme.sh --renew -d yourdomain.com
来强制续期证书。
通过以上步骤,你可以在CentOS 7上使用acme.sh成功申请Let’s Encrypt的SSL证书,并将其安装在Nginx服务器上。