免费的泛域名证书——Let's encrypt证书

知识分子没文化
2021-02-07 / 0 评论 / 525 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年02月07日,已超过227天没有更新,如存在内容错误、图片加载失败、链接失效等问题,请留言反馈。

目录:

环境说明:

Linux:ubuntu 20.0.4

nginx:1.18

域名服务商:阿里云

关于如何安装SSL的证书,在上一篇博客为Nginx服务器安装SSL证书实现站点的HTTPS访问这一篇中写过,里面详细介绍了申请到安装的一系列流程,只不过,上一篇是以申请阿里云的免费单域名证书为例来介绍SSL证书的安装,而本篇呢,则主要来详细介绍一下泛域名证书的申请。如果你不明白单域名证书与泛域名证书的区别,那么可以看看这篇:单域名SSL证书和泛域名SSL证书之间的区别。简单来说,单域名证书只适用于一个域名(一般是顶级域名或者“www”的二级域名),而泛域名证书适用于顶级域名下的所有二级域名。

现在阿里云、腾讯云等平台的单域名证书是免费的,但是泛域名证书就是收费的了,一年费用得上千块钱,对于企业来说还可以负担,但对于个人来说,就是一笔不菲的开支了,甚至比一年服务器与域名的费用总和还高,那么对于个人来说有没有办法申请免费的泛域名证书呢?答案当然是有的(要不然怎么水这篇博客),那就是Let's encrypt,这是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA),致力于HTTPS的普及,为网站免费提供SSL证书。

本篇博客就来介绍一下Let's encrypt证书的申请。

1.安装acme.sh脚本

先放上github项目链接:https://github.com/acmesh-official/acme.sh

github上的官方说明文档:安装脚本-英文说明中文说明

官方文档中安装脚本有这么几种方法:

  • https://get.acme.sh上安装:

    curl https://get.acme.sh | sh 
    或者:
    wget -O -  https://get.acme.sh | sh
  • 从github安装:

    curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh
  • 从github上克隆整个项目:

    # 当然这一步要用到git,安装过的可以忽略,没有安装的小伙伴用以下命令安装git:
    sudo apt install git
    
    # 克隆项目目录
    git clone https://github.com/acmesh-official/acme.sh.git
    # 进入克隆完成的目录
    cd acme.sh
    # 运行脚本文件
    ./acme.sh --install

我在安装的时候,前两种方法都不成功,只有第三种方法管用。所以根据自身情况选择一种方法就行了,但是用第三种方法的时候要记得克隆完项目之后执行脚本

01

acme.sh脚本文件安装完之后会在当前目录中生成一个名字为.acme.sh的隐藏目录,用ls -al命令可以查看这个文件夹。

2.获取域名商的DNS api

这一步需要用到域名服务商的api,这里以阿里云为例来说明如何获取api(因为博主只有阿里云域名,没有其他服务商那里的域名)。

进入阿里云AccessKey管理界面并登录,点击左上角创建AccessKey,就会弹出一个页面,上面是创建出来的AccessKey,将其复制下来。

02

关于api的使用方法,官方文档How to use DNS API说明的很详细,可以自己查阅,根据自己的域名商选择对应的就行。

例如我的是在阿里云平台,对应的文档中第11个,那么按照文档中的方法,在命令行中输入:

# 设置环境变量,对应的等号后面换成自己的key和secret,双引号别丢了
export Ali_Key="key"
export Ali_Secret="secret"

3.生成证书

下面这一步就很简单了,一句命令就能生成证书(以langp.wang为例):

acme.sh --issue --dns dns_ali -d *.langp.wang -d langp.wang

上面这句命令适用于阿里云平台的域名,其中的langp.wang字样改为自己的域名即可,后面的-d *.langp.wang参数表示生成适用于所有二级域名的泛域名证书,当然也可以改成-d langp.wang来生成单域名证书,或者两个参数都加上也可以。

这句命令执行中间应该会有“success”字样,末尾处会输出生成的证书文件的位置与名称:

03

根据官方文档,对应的秘钥文件是xxx.key,证书文件是fullchain.cer,接下来就可以安装证书了。安装方法就可以参考我的另一篇博客:为Nginx服务器安装SSL证书实现站点的HTTPS访问

更多关于Let's encrypt证书的详细介绍可以参考这篇文章:https://www.jianshu.com/p/1a792f87b6fe

0

评论 (0)

取消