HTTPS 签名证书自动生成、检查、更新

一、背景

     为何使用https,具体不做介绍,相比大家都很清楚。使用SSL 证书有免费的也有收费的。这里使用的由Let’s Encrypt SSL 提供的完全免费的certificates。 本文将使用Certbot工具进行证书的一系列操作。

什么是Certbot?

    Certbot是一个免费的开源软件工具,可用于在手动管理的网站上自动使用Let's Encrypt证书来启用HTTPS。

二、前置条件

1、有属于自己的域名

Encrypt 只为域名提供证书,比如"*.com"、“*.cn”等顶级域名。

2、拥有命令行访问权限

具有访问服务器的权限

三、配置https

本文配置环境,CentOS7,Nginx

下载安装certbot

两种安装方式,(个人首选第二种,因为简洁)

第一种,参考certbot官网提供的安装文档,提供的文档很丰富,每个系统与软件都有单独的文档。本文参考文档

 

第二种,从github拉取源码,然后跑源码进行证书生成等一系列操作;

1、安装git

yum install git

2、下载证书包,并放到你想放到的文件夹(/opt/letsencryp

git clone https://github.com/certbot/certbot /opt/letsencryp

3、进入证书目录

cd /opt/letsencrypt

4、创建并部署Let’s Encrypt SSL 证书

./certbot-auto certonly --standalone --email 2897xxx@qq.com -d example.com

./certbot-auto certonly --webroot --email 2897xxx@qq.com -d example.com

注意:

 

  • 上面命令中的 email 地址是方便你接收证书密钥回复以及紧急信息的,尽量填写企业邮箱或者 gmail 邮箱,QQ邮箱应该也可以,你可以填写试试,邮箱也可以不用填写。
  • 你的网站域名如果是 xyz.com,那么上面就改为: -d xyz.com
  •  standalone 方式: certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它(80端口),以免冲突。

  •  

     webroot 方式: certbot 会利用既有的 web server,在其 web root目录下创建隐藏文件, Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。

  • certonly:不添加certonly则certbot将会自动配置nginx.conf文件,添加则只生成证书文件,后期需要自己配置nginx.conf文件。

然后等待:

 

接着,会询问你是否同意的协议。agree 的话,输入 a,回车。此时就准备创建证书了,如果成功则会有如下提示:

 

在目录/etc/letsencrypt/live下将会有生成的证书文件夹,文件夹的名称就是你申请的域名,且你证书的有效期(90天有效期),并且告诉你如果证书到期了你该怎样做;

证书文件,其中里面有一个文件告诉你,最好不要修改或移动这些文件“cert.pem      chain.pem    fullchain.pem(公钥) privkey.pem(私钥)“

 

然后使用这些证书文件配置自己的nginx就行。

注:记得开放443端口;

查看所有开放的端口:firewall-cmd --zone=public --list-ports

开放443端口: firewall-cmd --zone=public --add-port=443/tcp --permanent

重启防火墙:systemctl restart firewalld

四、配置证书自动续期

首先,检查你的 Let’s Encrypt 证书管理程序是否是 Certbot(你是否安装了 Certbot)

执行命令

find / -name "certbot"

如果找到类似于 /bin/certbot  的结果,那么说明已安装了 Certbot,上述步骤都已执行,则应该没问题。

如果想手动更新证书只需执行/bin/certbot renew即可,但是如果证书有效期超过30天则会提示如下错误信息(当然可以修改配置文件取消30天的限制)

 

1、检查 Cron 服务状态

systemctl status crond

 

如果提示错误,或没有安装Cron,则执行如下命令进行安装:

yum -y install vixie-cron

yum -y install crontabs

2、启动 Cron 服务

systemctl enable crond
systemctl start crond

Cron 加入开机启动的服务列表中,编辑计划任务

crontab -e
使其在1,3,5,7,8,11等月的28日的凌晨2点执行,当然时间可以自己按证书的申请日期来确定,使其确保在证书未失效的30天内执行该命令
0 2 28 1,3,5,7,9,11 * "systemctl stop nginx ; /bin/certbot renew ; systemctl restart nginx"

五、测试SSL是否完全OK

 

使用该网站检测输入自己的域名即可,https://www.ssllabs.com/ssltest/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值