前言:该博客主要是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。
两种方式
- 通过acme.sh手动生成
- 通过docker镜像一键生成
第一种方式,第一步,获取acme.sh,如下
curl https://get.acme.sh | sh
注意
- 耐心等待,成功后会提示Install success!
- 如果安装完后执行acme.sh,提示命令没找到,请关掉终端然后再登陆,或者执行以下命令
source ~/.bashrc
第二步,开始获取证书,如下
步骤
- acme.sh强大之处在于,可以自动配置dns,不用去域名后台操作解析记录了
- 我的域名是在阿里云注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改,https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
- 请先前往阿里云后台获取App_Key跟App_Secret,https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fak-console.aliyun.com%2F#/accesskey
- 然后执行以下命令
# 替换成从阿里云后台获取的密钥
export Ali_Key="xxx"
export Ali_Secret="xxx"
# luoyu.com自行替换成自己的域名
acme.sh --issue --dns dns_ali -d luoyu.com -d *.luoyu.com
- 这里是通过线程休眠120秒等待DNS生效的方式,所以至少需要等待两分钟,生成的证书放在该目录下,~/acme.sh/domain/
第三步,简单的nginx配置ssl证书例子,如下
# luoyu.com自行替换成自己的域名
server {
server_name luoyu.com;
listen 443 http2 ssl;
ssl_certificate /path/.acme.sh/domain/fullchain.cer;
ssl_certificate_key /path/.acme.sh/domain/domain.key;
ssl_trusted_certificate /path/.acme.sh/domain/ca.cer;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
说明
- 第一次成功之后,acme.sh会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。
- 对这种方式有顾虑的,请慎重,不过也可以自行删掉用户级的定时任务,并且清理掉~/.acme.sh文件夹就行
第二种方式,第一步,配置好docker环境,此处不赘述
第二步,执行一条命令即可,如下
docker run --rm -it \
-v "/usr/local/ssl":/acme.sh \
-e Ali_Key="xxx" \
-e Ali_Secret="xxx" \
neilpang/acme.sh --issue --dns dns_ali -d luoyu.com -d *.luoyu.com
说明
- /usr/local/ssl是生成ssl证书的路径,自行替换成自己想要的路径。
- Ali_Keya和Ali_Secret为自己的阿里云密钥。
- luoyu.com自行替换成自己的域名。
- 执行后在自定义的路径下找到ssl证书进行配置即可。
后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和谅解,欢迎评论留言。
网友评论