https://blog.csdn.net/yedajiang44/article/details/121173526
Let’s Encrypt 是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。它只支持 DV 证书的签发,也就是通过验证域名所有权,然后签发该域名的证书。它支持两种验证方式,一种是通过 HTTP 的方式验证,另一种是通过 DNS 的方式验证,只有这种支持通配符,而今天要讲的就是第二种方式。
官网地址:https://letsencrypt.org
客户端
Let’s Encrypt 使用 ACME 协议来验证您对给定域名的控制权并向您颁发证书。要获得 Let’s Encrypt 证书,就需要选择符合 ACME 协议的客户端软件:
官方
提供了很多证书的申请方式方法:https://letsencrypt.org/zh-cn/docs/client-options/
certbot
既可以获取证书,也可以安装证书,适用于许多操作系统,并且文档很详细、完善。
acme.sh
目前 Let’s Encrypt 免费证书客户端中最简单、最智能的 shell 脚本,可以自动发布和续订 Let’s Encrypt 中的免费证书
阿里云
由于使用的是 dns 方式,且为了简化自动续签,因此为客户端提供阿里云操作 dns 的账号以及密钥
申请密钥
登录阿里云
进入 RAM 访问控制(可直接在右上角搜索:访问控制)
进入 RAM 中的身份管理中的用户组
创建用户组
进入新建的用户组新增授权
点击左侧用户菜单并创建用户 >访问方式一定要勾选 Open API 调用访问
将新建的用户添加到前面创建的用户组
到认证管理中创建 AccessKey
创建成功后建议直接导出,防止忘了
acme.sh
安装
自动安装
邮箱用于提醒证书过期
curl https://get.acme.sh | sh -s email=my@example.com
1
测试收否安装成功
[root@yedajiang44 .acme.sh]# acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.0.1
1
2
3
生成证书
设置环境变量
Ali_Key和Ali_Secret会被保存至~/.acme.sh/account.conf文件中
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
1
2
生成
建议启用 --debug 参数,因为可以看到详细的执行过程,否则会很容易误以为命令假死
acme.sh --issue --dns dns_ali -d example.com -d www.example.com --debug
1
记住输出的目录
配置 nginx
示例:
server {
listen 80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ip.yedajiang44.com;
ssl_certificate /home/yedajiang44/.acme.sh/yedajiang44.com/fullchain.cer;
ssl_certificate_key /home/yedajiang44/.acme.sh/yedajiang44.com/yedajiang44.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
default_type text/plain;
return 200 "$remote_addr\n";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ssl_certificate 一定要设置为fullchain.cer
手动重新加载 nginx
nginx -s reload
1
总结
————————————————
版权声明:本文为CSDN博主「yedajiang44」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yedajiang44/article/details/121173526