Let's Encrypt 是什么

Let’s Encrypt 是一家全球性的证书颁发机构(CA)。我们让世界各地的人们和组织获取、续期和管理 SSL/TLS 证书。网站可以使用我们的证书来启用安全的 HTTPS 连接。

Let’s Encrypt 提供域名验证型(DV)证书。我们不提供组织验证(OV)或扩展验证(EV),这主要是因为我们无法自动化地颁发这些类型的证书。

Let’s Encrypt 是一个非营利性组织,我们的任务是通过促进 HTTPS 的广泛采用来创建一个更加安全和尊重隐私的 Web 环境。我们的服务免费且易于使用,因此每个网站都可以使用它来部署 HTTPS。

本文能够达到的效果

  • 申请 Let's Encrypt 免费 HTTPS 证书。
  • 申请泛域名证书,这样一个证书支持所有子域名共用。
  • 由于 Let's Encrypt 的证书有效期很短(90 天),acme.sh 能够自动更新证书。

操作步骤

注意:下面所有操作,全程使用 root 账户。

切换到Root用户:  sudo su root

假设已经安装好了 Nginx 服务器。

假设要配置的域名是 example.com,并且托管在阿里云。

在使用Root用户操作的时候会警告, 官方文档给出如下提示:

使用sudo不推荐使用。如果未正确配置为不要求输入密码,则在从 cronjob 运行命令(如更新)时可能会导致权限问题,从而导致您的部分或全部证书未被更新并最终会过期。

现在,如果您完全确定问题和使用 的可能性sudo并且仍然想使用它,您可以传递--force参数。

请记住:使用sudo不推荐使用。您可以选择自行承担风险。

我们传递 --force 参数, 继续........

安装 acme.sh

acme.sh 的网站是:https://github.com/Neilpang/acme.sh 。

首先安装 socat,acme.sh 依赖 socat。

# yum install -y socat

安装 acme.sh

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

检查 acme.sh 是否安装成功。

# crontab -l

如果安装正确,会有如下显示(第一列分钟是随机数):

11 0 * * * "/home/xiaoqiang/.acme.sh"/acme.sh --cron --home "/home/xiaoqiang/.acme.sh" > /dev/null

设置访问 DNS 的密钥

为了验证待申请域名的所有权,acme.sh 需要在 DNS 服务器添加记录,用来验证。

这里采用阿里云 API 的方式,其它 API(CloudFlare,DNSPod,GoDaddy,等),及服务器验证方式,请查看 acme.sh 文档。

在阿里云创建一个 RAM 子账户,获得 Key 和 Secret,设置到环境变量。

# export Ali_Key="替换我"
# export Ali_Secret="替换我"

申请证书

我们申请一个泛域名的证书,这样,所有二级域名都可以共享这个证书了。

# ~/.acme.sh/acme.sh --issue --dns dns_ali -d example.com -d *.example.com

等待一大堆输出后,会有如下显示,表明申请成功。

Your cert is in  /root/.acme.sh/example.com/example.com.cer
Your cert key is in  /root/.acme.sh/example.com/example.com.key
The intermediate CA cert is in  /root/.acme.sh/example.com/ca.cer
And the full chain certs is there:  /root/.acme.sh/example.com/fullchain.cer

安装证书

这面这条命令将证书安装到 Nginx 配置目录,并设置当证书更新时,如果让新证书生效。

# ~/.acme.sh/acme.sh --installcert -d example.com --key-file /etc/nginx/ssl/example.com.key --fullchain-file /etc/nginx/ssl/example.com.cer --reloadcmd "systemctl force-reload nginx"

升级 acme.sh(2020-07-17 更新)

如果发现证书没有自动更新,并且执行 crontab 里面的命令提示如下错误

# /root/.acme.sh/acme.sh --cron --home /root/.acme.sh
...
Getting domain auth token for each domain
It seems the CA server is busy now, let's wait and retry. Sleeping 1 seconds.

就需要升级 acme.sh 了,升级命令

# ~/.acme.sh/acme.sh --upgrade

如果想自动更新, 可以使用如下命令:  acme.sh --upgrade --auto-upgrade

打完收功。

查看ssl证书有效时间

openssl x509 -in <证书请求文件> -noout -dates

卸载acme

acme.sh --uninstall

使用 Let‘s Encrypt 安装免费的 HTTPS 证书相关推荐

  1. 控制台的左侧显示证书树形列表_一款免费签发Https证书的工具:Let's Encrypt

    前言 众所周知,因特网上应用最为广泛的网络传输协议是Http协议,但由于Http协议存在一些不足,比如,在通信过程中使用明文传输,同时未验证通讯双方身份信息,会导致传输数据被第三方窃取. 因此,为了提 ...

  2. 免费申请 HTTPS 证书,开启全站 HTTPS

    HTTP 报文以明文形式传输,如果你的网站只支持 HTTP 协议,那么就有可能遭受到安全攻击.你可以使用 Google 浏览器打开一个 HTTP 协议网站,会发现 Chrome 在网址的左边将这个网站 ...

  3. 在阿里云centos7.4上配置nginx免费的https证书,支持泛解析

    在阿里云centos7.4上配置nginx免费的https证书,支持泛解析 一 原理说明: 使用acme.sh工具来生成证书,但为了方面采用的使用dns添加TXT记录验证方式,跟传统的webroot有 ...

  4. 如何为WordPress博客网站配置免费域名HTTPS证书

     系列文章 Win系统如何下载安装使用cpolar内网穿透工具? 本地电脑如何搭建web网站,并发布到公网访问?1-2 本地电脑如何搭建web网站,并发布到公网访问?2-2 如何搭建WordPress ...

  5. 免费得到HTTPS证书方法

    开发微信小程序时,要求发布的站点要求HTTPS证书.然后CHROME浏览器现在都默认将HTTP的站点显示为不安全.看来,必须得让自己的平台也加上HTTPS了.同时GODADDY的HTTPS证书,一个证 ...

  6. 如何在阿里云申请免费的HTTPS证书

    系列文章 Windows用户如何安装使用cpolar内网穿透? Windows上如何搭建web网站,并发布到外网可访问?1-2 Windows上如何搭建web网站,并发布到外网可访问?2-2 Wind ...

  7. 为网站配置免费的HTTPS证书 4-4

      系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 上一篇:  为网站配置免费 ...

  8. 为网站配置免费的HTTPS证书 2-4

     系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 上一篇:  为网站配置免费的 ...

  9. 为网站配置免费的HTTPS证书 1-4

    系列文章 为网站配置免费的HTTPS证书 1-4 为网站配置免费的HTTPS证书 2-4 为网站配置免费的HTTPS证书 3-4 为网站配置免费的HTTPS证书 4-4 在前面的一系列文章中,如< ...

最新文章

  1. python 模拟键盘_Python 模拟键盘输入 | 学步园
  2. 阿里巴巴公布第二财季报告,净利润同比增长71%
  3. 求职Python开发,面试官最喜欢问的几个问题
  4. 深度学习100例 - 卷积神经网络(Inception V3)识别手语 | 第13天
  5. centos 对某ip开放 防火墙端口_CentOS防火墙iptables限制端口和来源IP地址访问的配置...
  6. python列表冒泡排序_python – 冒泡排序已排序列表
  7. 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
  8. Gradle修改缓存路径 和 Gradle修改Maven仓库地址
  9. 在Web浏览器中显示Spring应用程序启动的进度
  10. 三星Galaxy S22系列国行版获3C认证:依旧祖传25W快充
  11. mac php 停用,Mac_MAC系统 Apple ID 停用的解决办法,  一些MAC用户发现自己的Appl - phpStudy...
  12. TriumphX与Metaverse NFT艺术家RisingSun签署专属合同
  13. # Please enter the commit message for your changes. Lines starting # with ‘#‘ will be ignored
  14. jsp java代码取session_jsp中的session在java文件中取到
  15. 【数据结构和算法】拓扑排序(附leetcode题 207/210 课程表)
  16. 给出a-z,0-9,输出所有的3个字符的组合
  17. 基于react hook的砸金蛋动画
  18. 三校生计算机教学计划,三校生高考英语教学计划.doc
  19. matlab text函数
  20. Maven setting文件配置错误:Non-parseable settings..in comment after two dashes (--) next character must be

热门文章

  1. wrapper.and
  2. 【Android】增强现实应用——AR画报
  3. 深度学习模型部署的几种方法
  4. lamp架构之redis(3):redis和mysql的整合
  5. 福昕PDF阅读器变成了英文界面怎么办?
  6. 聋人计算机大学排名,聋人计算机的多媒体教学
  7. js 鼠标事件mouseover和mouseout在父盒子移到子盒子中的思考
  8. 【Spring】JdbcTemplate
  9. 【每天学习一点新知识】你分得清进程、线程和协程吗?
  10. [源码解析] 快手八卦 --- 机器学习分布式训练新思路(1)