文章目录

  • 前言
  • 一、通过acme.sh脚本从 letsencrypt 生成免费的证书
  • 二、通过阿里云申请免费证书
  • 三、通过certbot申请证书


前言

本文介绍三种免费证书生成方式。

一、通过acme.sh脚本从 letsencrypt 生成免费的证书

点此查看官方详细说明

以下以阿里云托管的域名为例
1、安装acme.sh

curl  https://get.acme.sh | sh

2、在阿里云控制台用户管理中创建AccessKey

nginx 无证书 开启ssl nginx ssl证书申请_自动更新


3、将AccessKey导入环境变量

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

4、创建证书

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

二、通过阿里云申请免费证书

1、在阿里云官网搜索ssl证书,进入产品详情页,提前登录一下账号。

nginx 无证书 开启ssl nginx ssl证书申请_nginx 无证书 开启ssl_02

2、点击选购证书

nginx 无证书 开启ssl nginx ssl证书申请_用户管理_03

3、选择单域名、DV SSL、免费版,立即购买,价格为¥0,无需支付费用

nginx 无证书 开启ssl nginx ssl证书申请_nginx 无证书 开启ssl_04


4、购买成功欧,进入证书控制台

nginx 无证书 开启ssl nginx ssl证书申请_ssl_05

5、在控制台中找到未签发的证书,点击证书申请

nginx 无证书 开启ssl nginx ssl证书申请_用户管理_06

6、按照提示填写信息,提交审核后一般十分钟内就通过了,通过审核后可以在已签发证书中下载证书文件

nginx 无证书 开启ssl nginx ssl证书申请_nginx 无证书 开启ssl_07

三、通过certbot申请证书

1、安装Certbot工具(以centos7系统为例)

yum install -y certbot

2、申请证书

certbot certonly  -d example.com --manual \
--preferred-challenges dns \
--server https://acme-v02.api.letsencrypt.org/directory

example.com为需要https访问的域名,泛域名可以使用 *.example.com
preferred-challenges dns表示通过dns进行域名认证,需要添加一条txt类型的域名解析记录,泛域名必须使用dns域名认证方式,不需要泛域名的话建议采用http认证方式,否则自动更新证书需要额外配置。

执行命令后会进行一些交互,根据提示输入内容即可。

3、查看证书

证书会默认生成到 /etc/letsencrypt/live目录,包含以下这些证书文件

nginx 无证书 开启ssl nginx ssl证书申请_nginx_08


4、自动更新证书

通过crontab添加一个定时任务

执行:crontab -e 在打开的编辑窗口中添加以下内容:

0 1 * * * /usr/bin/certbot renew

注意:采用dns域名认证方式需要正确配置–manual-auth-hook参数,否则自动更新会失败。