申请letsEncryp泛域名证书及一键部署nginx
说明
阿里云的证书有效期是90天,且只能手动续期,Let’s Encrypt
虽然也为90天,但是可以一键续期,这样的话就相当于永久有效了,不用再去手动操作
要从Let’s Encrypt
获得证书,您需要选择一个要使用的 ACME 客户端软件。 例如官方推荐的客户端 Certbot 、或者使用得最多的 acme.sh
这里使用acme.sh
来实现
安装acme.sh
安装参见acmesh-official/acme.sh
一键安装命令curl https://get.acme.sh | sh -s email=my@example.com
安装完成后会在用户目录下生成acme.sh文件夹,就是程序位置了
由于国内有时候并不能访问github,因此,国内就不能用acme.sh的一键安装了。
需要配置IP
vim /etc/hosts
1 | 185.199.108.133 https://raw.githubusercontent.com |
或者国内的gitee,通过git clone
的方式git clone https://gitee.com/neilpang/acme.sh.git
如果没有git命令,则需要安装gityum install git
部署
阿里云部署
申请阿里解析
申请完成后记得保存 秘钥,以后就查询不到了
点击用户登录名称,进去配置
点击权限管理,新增授权
权限策略处搜索DNS,选择AliyunDNSFullAccess 系统策略 管理云解析(DNS)的权限
然后点击确认授权
申请证书
执行命令
1 | acme.sh --issue --server letsencrypt --dns dns_ali -d '*.lqingyu.com' |
申请好的域名相关的证书会放在工程目录下的域名对应的文件夹中,如我的*.lqingyu.com
文件夹
在acme中还搜集了其他的不少可以一键部署的, 可以参考官方的使用方法 How to use DNS API
最终都会配置在工程路径下的account.conf
下
普通域名部署
有的没有自动部署API的,就只能手动部署了,以后快过期了也需要手动执行
申请证书
- 首先执行
acme.sh --issue --server letsencrypt --dns -d '*.liukewen.cn' --yes-I-know-dns-manual-mode-enough-go-ahead-please
(可以看下是否需要添加 –nginx参数),这里会生成 dns解析需要的配置Domain和TXT value,在域名解析里面配置好 - 然后再执行
acme.sh --renew -d '*.liukewen.cn' --yes-I-know-dns-manual-mode-enough-go-ahead-please
(可以看下是否需要添加 –nginx参数) ,就会生成成功
解析到Nginx中
执行以下命令,将秘钥文件复制到Nginx配置路径下(自定义路径,后面需要找到这文件)
1 | acme.sh --install-cert -d '*.liukewen.cn' \ |
其中key-file是key的文件,fullchain-file是cert的文件
(一个小提醒, 这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload)
Nginx 的配置 ssl_certificate 使用 /etc/nginx/ssl/fullchain.cer ,而非 /etc/nginx/ssl/
在Nginx的 nginx.conf中需要使用https的地方配置这两个文件
1 | server { |