现在网站使用https已经成为标配,但是SSL证书最便宜的DV证书也要几百块钱一年,对于个人开发者来说很不划算。好在,我们有Let's Encrypt,它是能提供免费的SSL证书,应该也是市面上使用最广泛的免费DV证书了。

原理

一点开Let's Encrypt还是有点懵的,按照在其他平台申请SSL证书的逻辑,它尽然不用注册,那怎么管理证书呢?随着不断的了解,对它也越来越佩服。

Let's Encrypt贡献两个主要的东西

ACME全称 Automatic Certificate Management Environment。它提供一套自动证书管理的规范,这套规范中包含客户端与服务端。而boulder就是Let's Encrypt提供的一套开源的证书颁发软件。ACME客户端官方没提供,只要支持ACME协议都可以实现。目前,官方推荐的客户端是certbot

证书颁发机构只需要确认你拥有该域名的所有权,就可以帮你生成证书(需要注意Let's Encrypt并不支持OV和EV证书)。

在服务器上运行ACME客户端,已自动化的方法确认用户对于域名的所有权,然后向Let's Encrypt服务端申请证书,通过后,既可以得到所需要的SSL证书。

Let's Encrypt生成的免费证书有效期为90天,但是它也支持自动续签。

使用

以下操作,基于CentOS7.8 + Nginx服务器。

安装certbot

它是一款在Linux上使用的现代包管理工具。

# Centos7中安装snapd
sudo yum install epel-release
sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap # 查看snapd服务状态
sudo systemctl status snapd # 安装certbot
snap install --classic certbot

可以参考官方文档:https://certbot.eff.org/instructions?ws=nginx&os=snap

申请证书

certbot有一些傻瓜式的方式可以直接一键生成证书并安装。但是这并不是我需要的,我只希望他帮我生成证书,然后自己在Nginx中配置。

sudo certbot certonly --webroot -w /path/to/webroot -d example.com -d www.example.com

这条指令的作用是以http的方式验证域名并单独生成证书。-w指定域名所在的根目录,-d指定需要验证的域名。以上命令成功后,它会在/etc/letsencrypt/live/example.com/目录中生成证书。

部署证书

部署证书的操作,另行搜索即可。

自动续签

在证书还有30天过期时,重新验证域名的所有权。验证成功重新颁发证书,并重启Nginx服务。

certbot已经将这些功能实现,只需要进行少量配置即可。

# 验证是否能够续签
sudo certbot renew --dry-run # crontab中添加定时调度
sudo crontab -e
0 3 * * * certbot renew --quiet --deploy-hook "nginx -s reload"

验证续签功能通过,说明当前环境没问题。就可以将续签的指令添加到crontab中每天晚上3点检测一次。--deploy-hook指定续签成功后reload配置。

其他

# 强制更新证书
sudo certbot certonly --webroot -w /path/to/webroot --force-renewal --deploy-hook "nginx -s reload" -d example.com -d www.example.com

引用

使用certbot申请免费SSL证书的更多相关文章

  1. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt

    让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS  网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...

  2. 最新阿里云申请免费SSL证书实现网站HTTPS化(图文教程一)

    一.申请免费SSL证书: 1.登录阿里云: 2.领取代金券礼包: https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=0a ...

  3. 阿里云申请免费SSL证书,并配置到Tomcat,实现https访问

    第一步:阿里云免费https证书安装  https://jingyan.baidu.com/article/fdffd1f8619481f3e98ca196.html 第二步:阿里云申请免费SSL证书 ...

  4. 物联网架构成长之路(20)-申请免费SSL证书

    0.前言 今天域名备案申请下来了,接下来就是申请个SSL证书,现在普通的网站没有SSL都不好意思见人了.可是稍微好点的企业级SSL证书还是比较贵的.不过还好有免费的可以用.只不过要定时去续时间.这个不 ...

  5. [从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. ...

  6. windows下 申请免费ssl证书的方法 (letsencrypt)

    Let's Encrypt,官网是https://letsencrypt.org/,它是一个由各大公司赞助的公益组织: 有趋势有需求,自然也有免费可用.免费的SSL证书中,首推就是Let's Encr ...

  7. Certbot为域名申请免费SSL证书

    Certbot(Let's Encrypt)是一个非盈利性认证机构通过运行互联网安全研究小组(ISRG)提供X.509 证书的传输层安全性不收取任何费用(TLS)加密.证书有效期为90天,在此期间可以 ...

  8. 阿里云免费申请免费SSL证书

    随着互联网的不断进步与发展,对于网站与数据的安全性要求也越来越高,原本的HTTP明文传输已经不被信任,https逐渐被关注,从谷歌.火狐浏览器将对HTTP明文页面标记"不安全",到 ...

  9. Let's Encrypt申请免费SSL证书

    1.https的作用 安全,防止网站被劫持,数据被修改 2.Let's Encrypt是什么 Let's Encrypt是一个证书授权机构(CA),可以从Let's Encrypt获得网站域名的免费证 ...

  10. 腾讯云服务器申请免费SSL证书,实现Https。

    1.首先在腾讯云的SSL证书管理中申请免费的SSL.审核速度还是挺快的... 2.按照步骤申请后,就可以下载主流web服务器的证书了.如图: 3.这里我使用的web服务器是nginx,把nginx下的 ...

随机推荐

  1. 如何使用ChatGPT自带插件

    OpenAI的插件将ChatGPT连接到第三方应用程序.这些插件使ChatGPT能够与开发者定义的API进行交互,增强ChatGPT的能力,并使其能够执行广泛的操作.插件使ChatGPT能够做如下事情 ...

  2. 科技助力上亿用户隐私安全保护,合合信息两款产品再获CCIA PIA星级标识

    随着互联网技术的飞速发展,个人信息的收集.存储.使用和传输变得日益频繁,其泄露和滥用的风险也随之增加,个人信息保护已成为社会共同关注的热点议题.近期,"中国网络安全产业联盟(CCIA)数据安 ...

  3. C++ STL list容器——链表

    list容器 简介 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列节点组成,节点可以在运行时动态生成.每个节点包括两部分:一个是存储 ...

  4. SpringMVC —— SpringMVC简介

    SpringMVC SpringMVC技术 与 Servlet技术功能等同,均属于web层开发技术 是一种基于java实现MVC模型的轻量级Web框架 SpringMVC 入门案例          ...

  5. 解锁Java线程池:实战技巧与陷阱规避

    专业在线打字练习网站-巧手打字通,只输出有价值的知识. 一 前言 线程池作为初学者常感困惑的一个领域,本次"巧手打字通课堂"将深入剖析其中几个最为普遍的误区.为了更清晰地阐述这些知 ...

  6. C语言数据类型、变量的输入和输出、进制转换

    scanf标准函数可以从键盘得到数字并记录到存储区里,为了使用这个标准函数需要包含stdio.h这个头文件 在scanf函数调用语句里应该使用存储区的地址表示存储区:双引号里使用占位符表示存储区的类型 ...

  7. /sys/kernel/debug/binder/目录下主要节点含义

    /sys/kernel/debug/binder/目录下主要节点含义 state 显示binder设备的整体状态信息 包括进程数量.线程数量.待处理事务数量等 stats 展示binder操作的统计信 ...

  8. kmemleak 和kasan 的区别

    kmemleak 和kasan 都是 Linux 内核中的一些工具和特性,用于帮助进行内存错误检测和修复.然而,它们之间有一些区别: 功能:kmemleak 用于检测内核中未释放的内存泄漏,它可以跟踪 ...

  9. 墨天轮访谈 | OceanBase 白超:海量数据管理,为什么选择OceanBase?

    分享嘉宾:白超(大窑) OceanBase解决方案架构师.前蚂蚁集团数据库团队DBA专家 整理:墨天轮社区 导 读 大家好,我是白超(花名:大窑),在过去的几年中,作为蚂蚁集团数据库SRE团队成员,经 ...

  10. kotlin更多语言结构——>This表达式

    This表达式 为了表示当前的 接收者 我们使用 this 表达式: - 在类的成员中,this指的是该类的当前对象. - 在扩展函数或者带有接收者的函数字面值中,this 表示在点左侧传递的 接收者 ...