使用ACME部署HTTPS证书

背景

现在越来越多的服务都是基于web,大多数默认使用HTTP协议。HTTP协议是一种没有加密的协议,所有数据都通过明文传输,即便是只在内网使用也存在一定的安全风险。尤其是对于登录等操作,账号密码通过HTTP协议明文传输是非常不安全的。

而HTTPS协议使用非对称加密的方式对数据进行加密,可以让数据传输变得更加安全可靠。而将HTTP协议切换成HTTPS协议,只需要增加TSL证书即可。

本文使用ACME工具来生成TSL证书,并将TSL证书部署应用于WEB服务,从而实现支持HTTPS协议的WEB服务。

ACME

ACME是The Automatic Certificate Management Environment的缩写,详情可以参阅其 GITHUB官方链接,并且有 中文说明。

ACME主要有以下几个功能

  • 向Let’s Encrypt申请证书
  • 支持包括阿里云在内的多个平台,通过多种接口为域名增加TXT解析
  • 将证书部署于web服务
  • 自动更新证书

安装ACME

只需要一行命令就可以安装ACME

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

或者

$ wget -O -  https://get.acme.sh | sh

安装一共包括下面几个步骤

  • 将acme.sh脚本复制到~/.acme.sh路径下
  • 在当前用户的SHELL环境配置文件中增加acme.sh=~/.acme.sh/acme.sh
  • 添加一项crontab定时任务

获取域名服务商的远程管理密钥

以阿里云为例,在用户的管理台中,找到AccessKey,安全起见可以增加一个子用户,并给该子用户添加管理云解析(DNS)的权限

记住AccessKeyID和AccessKeySecret,并运行下面的命令添加相应环境变量

export Ali_Key="AccessKeyID"
export Ali_Secret="AccessKeySecret"

申请证书

在同一个terminal中继续输入下面的命令来生成证书,记得把example.com改成自己的域名

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

注意查看程序运行日志,正常情况可以看到新生成证书的路径。

自动部署

自动把证书部署于WEB服务。

~/.acme.sh/acme.sh --installcert -d example.com \
--key-file /path/to/keyfile \
--fullchain-file /path/to/fullchain \
--reloadcmd "/etc/init.d/uhttpd restart"

本文以OPENWET的管理页面为例,

~/.acme.sh/acme.sh --installcert -d example.com \
--keypath /etc/uhttpd.key \
--fullchainpath /etc/uhttpd.crt \
--reloadcmd "/etc/init.d/uhttpd restart"

自动更新

在安装ACME时就创建了一条crontab定时任务,每天凌晨检查证书是否过期,如果过期的话就会重新申请并自动部署。

前面使用过的申请证书和自动部署的两条命令在运行之后都会记录下来,将来在证书自动更新时就会执行同样的的命令和参数。例如自动部署的命令就保存于~/.acme.sh/example.com目录下的example.com.conf文件里,reloadcmd命令是以base64编码后的形式保存的。

所以只要确保上面申请证书和自动部署的两部操作都正确无误就可以了,后续的更新都会自动进行,不需要额外的操作。

参考文章

自动化部署证书 acme.sh 详细实践使用教程

使用acme.sh实现海量域名SSL证书自动申请与更新

如上述博客有任何错误或者疑问,请加VX:1755337994,及时告知!万分感激!

使用ACME部署生成阿里云免费HTTPS证书相关推荐

  1. 十分钟搞定阿里云免费https证书申请和配置

    准确的来讲是SSL证书,它可以将你的网站(服务)从http转换成https,实现网站或移动应用的身份验证和数据加密传输,简单的来讲就是使网站可信,防劫持.防篡改.防监听.前段时间做了个微信小程序要求网 ...

  2. 阿里云免费HTTPS证书申请,免费SSL证书申请指南

    简介 最近发现阿里云开通了免费证书,之前有试过Let's Encrypt,也是免费的,但用起来还是很麻烦的,需要在服务器下载python环境,需要关闭服务器上的443端口等才能申请.作为java开发者 ...

  3. 阿里云免费https证书申请与配置-为不同应用申请安全证书并配置子域名

    这里写自定义目录标题 https证书申请必要性 申请证书过程 配置证书 子域名证书的好处 https证书申请必要性 越来越多的第三方系统要求网站支持https访问,例如微信小程序访问系统后台,甚至域名 ...

  4. 阿里云免费Https证书申请使用

    超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure) ...

  5. 阿里云免费ssh证书的免费购买,创建、下载,部署证书详细步骤

    阿里云免费ssh证书的免费购买,创建.下载.部署证书详细步骤 1.登陆阿里云账号 在自己域名对应的阿里云账号申请免费的ssh证书,注意:假定你有好几个阿里云账号,一定在自己的域名对应的阿里云账号申请: ...

  6. 使用百度云加速服务进行配置网站https证书(例如:阿里云免费SSL证书)

    详情请参考原文:使用百度云加速服务进行配置网站https证书(例如:阿里云免费SSL证书)

  7. 阿里云免费SSL证书申请与安装使用-附Nginx,Apache,IIS 6,IIS 8配置SSL教程

    大家直接跳转吧:http://www.07net01.com/2017/01/1795676.html 也许是看到了Https是未来发展的大趋势,Symantec 和GeoTrust 两大SSL公司最 ...

  8. 关于NodeJS配置HTTPS服务、阿里云申请HTTPS证书

    最新一直在折腾小程序 我是前后台一起做,前台不必说是微信的小程序,后端的用的是NODEJS. 所以就说一下NODEJS如何配置HTTPS服务 我的NODE用的是Express框架 直接上代码: 最重要 ...

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

    阿里云免费 SSL 证书申请 SSL 证书的作用是配置 http 访问转成 https 访问所必备的. 步骤 打开阿里云控制台 SSL 证书管理页 "免费证书"标签下点击" ...

最新文章

  1. 库克喜提 8 亿年终奖,2020 年整体薪酬增长 28%
  2. 【数据结构】回顾散列表
  3. 解决QueryTask执行中的网络请求错误
  4. php合并播放mp4文件_如何将百度的流畅版视频m3u8合并为正确的mp4文件?
  5. 某程序的bug是什么意思?
  6. 非索引查询如何提高效率_Python数据分析:数据库索引如何提高效率?
  7. 【转】log4j 设置将生成的日志进行gz压缩并删除过期日志
  8. linux之errno值为104(connetction reset by peer)
  9. 详尽解读中美科技差距究竟多么巨大
  10. SQL的导入excel数据
  11. iphone配置实用工具iPhone Configuration Utility
  12. CSC联合培养加拿大工签攻略
  13. 2020年中国汽车后市场行业发展现状分析,汽车保有量不断提升,行业发展前景广阔「图」
  14. 服务器怎么分盘?Windows系统服务器分盘操作方法
  15. 2022 数学建模C题 高教社杯 含半成品论文 部分代码 全部数学模型 和全套思路
  16. C语言丨整蛊必备小程序,好玩炸翻天(附源码)
  17. 开启codelite的c++11
  18. Cypher查询语言--Neo4j中的SQL
  19. 如何加速打开Axure分享的链接
  20. sql安装后pubs库丢失 解决方法

热门文章

  1. C#浅拷贝与深拷贝区别
  2. eclipse init 配置
  3. 服务器电流源泉ups电源的三大形式
  4. 如何使用ES6中的参数
  5. Virtual Network (1) - How to use it in a guest
  6. 用python做采集时相对路径转换成绝对路径
  7. ORA-29702:error occurred in Cluster Group Service operation错误解决
  8. linux构建主从域名服务器
  9. lock 线程 java_JAVA多线程-基础Lock Condition 并发集合
  10. 利用类定义一个指针会调用默认构造函数吗_C++的拷贝构造函数