acme生成通配符ssl证书

acme生成通配符ssl证书

1.安装acme

curl https://get.acme.sh | sh
安装完成后的目录在/root/.acme.sh/下面.
直接使用 cd /root/.acme.sh 命令 进入.acme.sh目录.

2.生成SSL证书

这里我们是用 DNS 验证方式。DNS 方式,需要手动在域名上添加一条 txt 解析记录,验证域名所有权。为了避免每次都需要手动解析验证域名所有权,我们使用域名解析商提供的 api 自动添加 txt 记录完成验证,acme.sh 目前支持数十种解析商的自动集成,其中包含阿里云。以阿里云为例,你需要先登录到阿里云账号,生成你自己的 api idapi key,它是免费的 (建议开启阿里云【RAM 访问控制】,只给 AliyunDNSFullAccess 权限策略,这样做更安全)
可参考:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

然后执行下面的命令:

export Ali_Key="xxx" && export Ali_Secret="xxx"

# 因为生成的通配符域名证书中并不包含根域名证书,所以我们要指定根域名。
acme.sh --issue --dns dns_ali -d example.com -d *.example.com

注意:请将 example.com 改为你自己的域名。
如果生成泛域名证书,需要先-d 主域名 再接泛域名 -d *.主域名
另外注意某一域名有频次限制,每小时5次,具体看官方文档

3.安装到nginx

./acme.sh --installcert -d example.com \
          --keypath /etc/nginx/ssl/example.com.key \
          --fullchainpath /etc/nginx/ssl/example.com.cer
          --reloadcmd "nginx -s reload"

4.nginx配置

server {
        listen       443 ssl;
        server_name  example.com;

        ssl on;
        
        ssl_certificate      ssl/abc.domain.com.cer;
        ssl_certificate_key  ssl/abc.domain.com.key;

        location / {
            proxy_pass   http://127.0.0.1:8001;
        }
    }
 # 80端口直接转到443
 server {
        listen      80;
        server_name    example.com;
        return      301 https://$server_name$request_uri;
 } 

5.更新证书

生成的证书只有30天有效期,所以需要自行更新

5.1手动更新

acme.sh --renew -d example.com --force

5.2自动更新

安装 acme.sh 时会自动创建一个 cronjob,每天定期检查所有证书,如果证书需要更新会自动更新证书。
通过 crontab -l 查看 crontab 任务:
25 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

如果有该定时任务,则不需要额外配置。

6.移除证书

查看所有证书

acme.sh  --list

移除某个证书

acme.sh  --remove  -d example.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白旗

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值