acme.sh生成通配符SSL证书

acme.sh生成通配符SSL证书

1、下载 acme.sh

curl https://get.acme.sh | sh

2、配置阿里云域名DNS密钥

以阿里云为例,你需要先登录到阿里云账号,生成你自己的 api id 和 api key,它是免费的 (建议开启阿里云【RAM 访问控制】,只给AliyunDNSFullAccess权限策略,这样做更安全)

https://github.com/acmesh-official/acme.sh/wiki/dnsapi#11-use-aliyun-domain-api-to-automatically-issue-cert

export Ali_Key="<key>"
export Ali_Secret="<secret>"

3、创建证书存放目录

mkdir -p /etc/nginx/ssl
chown -R $USER /etc/nginx/ssl

你可以修改默认CA服务商为 letsencrypt,原默认为zerossl

./acme.sh --set-default-ca --server letsencrypt

参考 https://github.com/acmesh-official/acme.sh/wiki/Server

4、安装到nginx

./acme.sh --issue --dns dns_ali -d example.com -d *.example.com \
    --keypath /etc/nginx/ssl/example.com.key \
    --fullchainpath /etc/nginx/ssl/example.com.cer \
    --reloadcmd "sudo nginx -s reload"

5、nginx使用ssl证书

listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.com.cer; # 替换证书文件
ssl_certificate_key /etc/nginx/ssl/example.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

sudo nginx -s reload

六、更新证书

# 升级 acme.sh 到最新版
./acme.sh --upgrade
# 查看所有证书
./acme.sh --list
# 移除某个证书
./acme.sh --remove -d example.com

# 手动更新
./acme.sh --renew -d example.com

# 自动更新(请确保 cronjob 正确安装, 看起来是类似这样的,路径可能不一样)
crontab  -l
56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容