0
点赞
收藏
分享

微信扫一扫

通过Let's Encrypt免费申请永久SSL证书教程

花明 2021-09-19 阅读 60
网络安全

前言:该博客主要是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。

两种方式

  1. 通过acme.sh手动生成
  2. 通过docker镜像一键生成

第一种方式,第一步,获取acme.sh,如下

curl https://get.acme.sh | sh
注意
  1. 耐心等待,成功后会提示Install success!
  2. 如果安装完后执行acme.sh,提示命令没找到,请关掉终端然后再登陆,或者执行以下命令
source ~/.bashrc

第二步,开始获取证书,如下

步骤
  1. acme.sh强大之处在于,可以自动配置dns,不用去域名后台操作解析记录了
  2. 我的域名是在阿里云注册的,下面给出阿里云解析的例子,其他地方注册的请参考这里自行修改,https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert
  3. 请先前往阿里云后台获取App_Key跟App_Secret,https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fak-console.aliyun.com%2F#/accesskey
  4. 然后执行以下命令
# 替换成从阿里云后台获取的密钥
export Ali_Key="xxx"
export Ali_Secret="xxx"
# luoyu.com自行替换成自己的域名
acme.sh --issue --dns dns_ali -d luoyu.com -d *.luoyu.com
  1. 这里是通过线程休眠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;
    }
}
说明
  1. 第一次成功之后,acme.sh会记录下App_Key跟App_Secret,并且生成一个定时任务,每天凌晨0:00自动检测过期域名并且自动续期。
  2. 对这种方式有顾虑的,请慎重,不过也可以自行删掉用户级的定时任务,并且清理掉~/.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
说明
  1. /usr/local/ssl是生成ssl证书的路径,自行替换成自己想要的路径。
  2. Ali_Keya和Ali_Secret为自己的阿里云密钥。
  3. luoyu.com自行替换成自己的域名。
  4. 执行后在自定义的路径下找到ssl证书进行配置即可。

后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和谅解,欢迎评论留言。

举报

相关推荐

0 条评论