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

两种方式

  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证书进行配置即可。

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/92237.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>