Last updated on
acme.sh申请ssl证书
- 安装acme.sh
curl https://get.acme.sh | bash
# 邮箱注册
acme.sh --register-account -m youremail@gmail.com
# 切换ca服务商
acme.sh --set-default-ca --server letsencrypt
- 域名验证
HTTP验证
acme.sh --issue --standalone -d example.com -d www.example.com -k ec-256
DNS验证
# 执行此命令设置变量的值,acme.sh脚本执行过程会读取
export CF_Token="example"
export CF_Account_ID="example"
export CF_Zone_ID="example" # 此项非必须,上面两项需要提供
# 申请证书
acme.sh --issue -d www.example.com -d example.com --dns dns_cf -k ec-256
- 配置证书至 Nginx
导出 key 和 pem 两文件。
acme.sh --install-cert -d example.com \
--key-file /root/.certs/example.com/example.com.key \
--fullchain-file /root/.certs/example.com/example.com.pem \
--reloadcmd "systemctl reload nginx"
- 修改nginx配置
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /root/.certs/example.com/example.com.pem;
ssl_certificate_key /root/.certs/example.com/exaample.com.key;
location / {
root /var/www/html;
try_files $uri $uri/ =404;
}
}
本身比较简单,不过网上大多数博客都写的太烂了。我这篇文章写得过于简洁,只看小列表即可,懂个大概,那么基本上就没什么问题了。