为什么你需要SSL证书?
-
安全升级:HTTPS加密传输,防止数据被窃取或篡改。
-
SEO加成:谷歌等搜索引擎优先收录HTTPS站点。
-
信任标识:浏览器地址栏显示“小锁”,提升用户信任感。
acme.sh是什么?
-
开源神器:纯Shell脚本编写,轻量无依赖。
-
全自动托管:申请、安装、续期一条龙,无需人工干预。
-
多CA支持:默认Let's Encrypt,也支持ZeroSSL等。
操作指南
1. 安装acme.sh
yum install git -y
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install
crontab -e
2. 将nginx配置为环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin
source /etc/profile
nginx -version
3. 进行签名
🔑 方式一:DNS验证(推荐)
适用场景:拥有域名解析API权限(如阿里云、Cloudflare)。
export Ali_Key="你的阿里云API Key"
export Ali_Secret="你的阿里云Secret"
./acme.sh --issue --dns dns_ali -d example.com -d *.example.com
优点:无需暂停服务器,支持通配符证书(*.example.com
)。
注意:API账号需要有如下权限
🌐 方式二:HTTP验证
适用场景:临时验证文件可被服务器访问。
./acme.sh --issue -d example.com --webroot /usr/local/nginx/html --email vinokog337@kaiav.com
原理:脚本自动在/usr/local/nginx/html
生成验证文件,CA通过HTTP访问验证所有权。
注意:HTTP验证不支持通配符
4. 进行证书安装
./acme.sh --install-cert --dns dns_ali -d example.com -d *.example.com --key-file /usr/local/nginx/tls/key.pem --fullchain-file /usr/local/nginx/tls/cert.pem --reloadcmd "nginx -s stop;/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf;"
注意:HTTP验证去除--dns dns_ali即可
5.nginx配置
listen 80;
listen 443 ssl;
server_name *.example.com;
ssl_certificate /usr/local/nginx/tls/cert.pem;
ssl_certificate_key /usr/local/nginx/tls/key.pem;