# 使用Let's Encrypt 生成免费的https证书且可自动续期
Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 文章来源 (opens new window)
# 安装acme.sh脚本
curl https://get.acme.sh | sh
不出意外,你会看到如下界面内容。
# 开通阿里云AccessKeys子账户
不同的服务器运营商会有各自的API 去配置使用 参考链接 (opens new window)
# 阿里云ECS服务器的配置参数如下
export Ali_Key="-------------------"
export Ali_Secret="--------------------------"
在里面可以找到,要使用此API,需要如上两个值。这两个值需要开通阿里云AccessKeys ,戳这里开通 (opens new window)。
# 具体操作如下
- 如果你是第一次开通,并且没有开通子账户,会出现如下界面。其实 AccessKeys 并不是我第一次使用,以前使用都没用子账户,这次准备使用子账户 (点击右键)
- 接着一直往下点击就是了。
- 不出意外我们进入总览界面,接着创建一个新用户,毕竟我们目的就是这。
-取好名字,然后看你需求勾选,这里我并不需要这新用户登录界面,只要能在代码中使用 Key 就行
- 完成后出现如下内容,
一定要记住其中的 AccessID 和 AccessKeySecret ,上面脚本中要填写的也就是这两个值
。
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
- 现在还不能直接将值填写进去使用,因为还要给这个新用户赋予权限。
- 搜索 DNS 将
AliyunDNSFullAccess
添加到右边的那一栏,其他不用就这一个可以了。最后点击确定
# 开始在Nginx配置API
输入命令,修改 .bashrc 文件,将如上代码添加进去。记得修改成自己的 key 和 value 。
vim ~/.bashrc
TIP
添加下面两条数据进上图配置文件中
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
具体操作如下
# 输入英文字母i 启用编辑模式
i
# 粘贴进去放到如图位置
# 保存退出
Esc
:wq
#退出来后重新加载文件
source ~/.bashrc
# 生成泛域名证书
这里比较简单,就一行命令,记得替换成你自己的域名,两个位置都要替换。
acme.sh --issue --dns dns_ali -d guozh.net -d '*.guozh.net'
成功后界面上有文件的存放地址
# 关于证书续期
Let's Encrypt 证书的有效期是三个月。但我们通过脚本acme.sh启动就不用担心,因为它写入了定时命令。用 crontab -l 列出定时任务。
# 在配置Nginx 的 ssl_certificate
server {
listen 443 ssl;
server_name localhost;
location / {
index index.html index.htm;
}
ssl_certificate /root/.acme.sh/xmanv.com/fullchain.cer;
ssl_certificate_key /root/.acme.sh/xmanv.com/xmanv.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
# 证书到期手动续期
强制更新证书
/root/.acme.sh/acme.sh --cron --home /root/.acme.sh --force
重新启动NGINX服务器