Nginx安装免费https证书(Let‘s Encrypt)申请与配置(一)

Let's Encrypt —— 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA),简单的说,就是为网站提供免费的 SSL/TLS 证书。

Let's Encrypt 生成证书的工具很多,certbot 是官方推荐的签发工具,操作起来比较简单,由于我们的网站经常会使用Apache或者Nginx进行代理,本次在操作系统Centos8以Certbot生成Nginx证书为例进行配置,官网如下:

Certbot官网,针对每类web服务和操作系统都有对应的操作手册

一、前提

1,Certbot支持的Web服务才可以使用Certbot自动生成并安装证书;虽然支持Nginx,但是基于Nginx的OpenResty并不支持,期待后期Certbot能够支持OpenResty;

2,需要事先安装好Nginx,并指定Nginx的环境变量PATH

vim /etc/bashrc
export PATH=/usr/local/nginx/sbin:$PATH
source /etc/bashrc

3,certbot找nginx进程是通过nginx.pid文件查找,默认从nginx的安装目录/usr/local/nginx/logs/nginx.pid查找,找不到会报错。 

4,事先得有域名,可以是免费域名,根据项目提前申请准备好;

5,域名需要解析到指定的服务器,需要通过Internet能够访问到域名,即域名需要绑定对应的公网IP地址;

6,在Nginx服务的配置文件nginx.conf需要指定认证的域名对应server_name,如

        server_name xunlu.aits-lrn.com tpu.aits-lrn.com;

7,关闭Selinux,否则会在执行过程中报错:error: too early for operation, device not yet seeded or device model not acknowledged;

        <1>不重启的头闭# setenforce 0   #当前有效,重启电脑后失效
        <2>重启电脑的关闭# vi /etc/selinux/config把SELINUX=enforce   改成disabled就可以了,重启电脑,永久生效

二、证书生成

证书生成有两种方式

1,自动生成,通过Certbot官网提供的文档

        Nginx on CentOS 8 本次选择Nginx服务Centos8操作系统

2,手动生成,通过手动执行Certbot证书生成命令来完成

本次以自动生成方式进行演示。

三、证书安装过程

要使用Certbot,需要安装snapd,这个工具是Certbot必须依赖的,事先需要在你的Nginx服务对应的操作系统执行安装snapd。

1,安装snapd

        官网提供了安装文档,按照此方式执行,具体步骤如下

        Installing snap on CentOS

1.1 安装EPEL库

sudo dnf install epel-release
sudo dnf upgrade

1.2 snapd安装

sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap

 2,移除原有Certbot-auto的安装包

sudo yum remove certbot

3,安装Certbot

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

4,运行Certbot

        4.1 自动运行并完成证书安装配置

sudo certbot --nginx

首次执行会报错

[root@master01 ~]# sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The nginx plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError("Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.",)

上面提示信息显示没有找到nginx,那么需要将nginx放到环境变量中,设置nginx软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx

 再执行sudo certbot --nginx就可以正常执行。

        4.2 仅生成证书后手动配置

sudo certbot certonly --nginx

5,自动更新证书

      为了证书不被过期,需要定期更新证书有效期,可以执行命令

sudo certbot renew --dry-run

    此命令会自动创建一个job执行,在证书过期之前自动更新有效期,job位置在其中以下一个位置:

  • /etc/crontab/
  • /etc/cron.*/*
  • systemctl list-timers

6,当需要安装新的证书

 sudo certbot run --nginx

 7,验证证书安装结果

   在浏览器访问 https://yourwebsite.com/

参考资料

【Nginx】使用certbot安装免费https证书使Nginx支持Https请求

Configuring certbot-nginx for OpenResty

免费 https 证书(Let's Encrypt)申请与配置1

免费 https 证书(Let's Encrypt)申请与配置2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
let's encrypt是一个非盈利性质的机构,致力于提供免费的SSL证书服务,以促进整个互联网的安全性。在官网上,他们提供了一键式免费申请SSL证书的脚本,使得用户可以快速而简便地获取自己网站的SSL证书。 这个一键式免费申请SSL证书脚本的使用非常简单。首先,用户需要在自己的网站服务器上安装配置好Certbot工具。Certbot是一个由let's encrypt官方开发的自动化工具,用于申请和更新SSL证书。 在安装配置好Certbot之后,用户只需要在命令行中输入一条简单的指令,就可以申请自己网站的SSL证书了。具体指令如下: $ sudo certbot certonly --standalone -d <your_domain> 其中,“<your_domain>”替换为用户自己的域名。这条指令的作用是告诉Certbot以standalone模式运行,并申请一个新的证书,该证书将与用户输入的域名关联。 Certbot会自动与let's encrypt的服务器进行通信,验证用户所拥有的域名和服务器的控制权。一旦验证通过,Certbot就会生成一个有效期为90天的SSL证书,并将其保存在用户指定的位置。 用户可以根据自己的需要选择将证书文件保存到哪个目录,以及将其用于哪个Web服务器(例如Apache或Nginx)。 值得一提的是,这个一键式免费申请SSL证书脚本还支持自动续订证书的功能。Certbot会在证书即将过期之前自动执行更新过程,以确保用户的网站能够持续使用最新的SSL证书。 总之,let's encrypt官网提供的一键式免费申请SSL证书脚本极大地简化了证书申请和管理的过程,让网站拥有更安全可靠的加密通信。用户只需几个简单的步骤,就能轻松获得免费的SSL证书,提升网站的安全性和可信度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NettyBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值