acme 生成通配符 SSL 证书

1.确认已安装 acme(不要重复安装)

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

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


2.生成SSL证书

我们是用 DNS 验证方式验证域名所有权,acme.sh 目前支持数十种解析商的自动集成。以阿里云为例,你需要先登录到阿里云账号,生成你自己的 api id 和 api key (只给 AliyunDNSFullAccess 权限策略,这样做更安全 )。然后执行下面的命令:

# 替换成从阿里云后台获取的密钥
export Ali_Key="xxxxxxxxxxxx"
export Ali_Secret="xxxxxxxxxxxxxxxxxxxxx"
# 换成自己的域名
/root/.acme.sh/acme.sh --issue --dns dns_ali -d example.com -d *.example.com

3.安装到nginx

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

4.nginx配置

server {

        listen       443 ssl;
        server_name  example.com;
      
        ssl_certificate      ssl/abc.domain.com.cer;
        ssl_certificate_key  ssl/abc.domain.com.key;

        ...
}
# 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

你可能感兴趣的:(运维,ssl)