最近要做微信小程序,要求接口必须备案且是https,个人小站就直接准备使用免费的SSL证书,网上搜了一圈,发现Let's Encrypt是浏览器支持比较好的。

流程:

1. 首先去服务器上安装了Let's Encrypt的生成工具,我系统是云服务器CENTOS7,在github clone了源码,无需安装。

2. 进入到clone下来的代码文件夹,看看cerbot-auto这个文件有没有执行权限,如果没有,chmod +x ./cerbot-auto

3.可以开始正式生成了,如果是第一次申请,中间应该会有email的注册流程,一路yes即可,另外需要用root执行,一般有3种生成方式,

(1)--standalone 这种需要使用80端口,需要停止网站服务,不太方便

  例:

./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com -d other.example.net

(2)--webroot 这种比较方便只会往网站根目录生成随机认证文件,然后会验证,这种方式比较常用,不过有多少子域名就得写多少个,不支持通配符

  例

./certbot-auto certonly --webroot -w /var/www/example --email admin@example.com -d example.com -d www.example.com -d other.example.net

(3) 支持通配符的方法。

./certbot-auto certonly --email admin@example.com  -d *.example.com -d example.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory 

这种方法是通过DNS验证,一定要看清楚再下一步,其中有一步是给了你一个随机字符串,需要添加到域名解析的TXT记录里,这一步必须加好了且测试已经生效才能回车,测试方法,新开一个shell执行一下:dig -t txt _acme-challenge.example.com @8.8.8.8,如果在返回信息里包含了正确的随机字符串,则说明已经生效,这时回车即可

4. 证书生成好会放在/etc/letsencrypt/live里,以域名区分不同的证书,像nginx这些直接配置一下就可使用

ssl_certificate /etc/letsencrypt/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/chain.pem;

5. docker中使用的话,建议容器启动时分配一个volume,然后在宿主机上手动复制到这个volume,容器中就可以直接使用,这里注意不能使用软链,因为容器启动后软链的地址会变成容器自己的/etc/letsencrypt,就会找不到文件

6. 其他地方使用,像有些服务商的虚拟机,不支持pem后缀的,就必须转换成.crt和.key

openssl x509  -in fullchain.pem -out fullchain.crt
openssl rsa -in privkey.pem -out privkey.key

把转换后的文件传到对应位置即可

7.续期,一般直接使用./cerbot-auto renew即可,可写个脚本,设置成每60天执行一次

#!/usr/bin bash
cd /data/certbot
./certbot-auto renew
/usr/bin/cp -f /etc/letsencrypt/live/example.com/* /data/nginxconf/
# 每隔60天执行一次
0 4 */60 * * sh /root/certbot-renew.sh >> /var/log/certbot-renew.log

8.如果重复执行生成命令会生成example.com-001等带后缀的域名文件夹,新的证书就放在这里面,这样会对脚本使用产生问题,就需要删除历史不用的证书

rm -rf /etc/letsencrypt/archive/example.com/

rm -rf /etc/letsencrypt/live/example.com/

rm -rf /etc/letsencrypt/renewal/example.com.conf rm -rf /etc/letsencrypt/archive/example.com-001/

rm -rf /etc/letsencrypt/live/example.com-001/

rm -rf /etc/letsencrypt/renewal/example.com-001.conf

必须删除这3个路径下的文件,不然继续执行还会生成-002文件夹,删除完成执行,重新执行生成命令,就会看到生成新的证书到正确的目录了,,后面就最好直接用renew来续期

使用Let's Encrypt生成免费SSL证书操作记录的更多相关文章

  1. 【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  2. IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

  3. docker获取Let's Encrypt永久免费SSL证书

    一 起因 官方的cerbot太烦了,不建议使用 还不如野蛮生长的acme.sh,而这里介绍docker运行cerbot获取Let's Encrypt永久免费SSL证书 二 选型 cerbot的证书不会 ...

  4. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题

    最近需要https这里看到一份不错的博客,收录一下! Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust ...

  5. 申请Let's Encrypt永久免费SSL证书

    Let's Encrypt简介 Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust.EFF等组织人员发起 ...

  6. 申请Let’s Encrypt永久免费SSL证书过程教程及常见问题

    配置证书https://easy.zhetao.com/   虽然目前Let’s Encrypt免费SSL证书默认是90天有效期,但是我们也可以到期自动续约,不影响我们的尝试和使用,为了考虑到文章的真 ...

  7. Windows Server 快速生成免费SSL证书 (letsencrypt)

    最近官网需求部署个SSL证书,一番操作后把借鉴的网站与实际过程记录下来 Let's Encrypt,官网是https://letsencrypt.org/,它是一个由各大公司赞助的公益组织: 有趋势有 ...

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

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

  9. 使用lets encrypt获取免费ssl证书

    lets encrypt也是一个CA,并且在众多大厂的加持下有可能成为最棒的免费颁发证书的CA,尤其是chrome的加入. 目前https已经成为了一种趋势,无奈证书授权费用相当昂贵,将一大批企业挡在 ...

随机推荐

  1. 全新定义!免费开源ERP平台如何玩转工业互联网

    简述 IoT Box通过Wifi.蓝牙.USB.网线等方式连接设备.IoT再通过互联网连接到Odoo服务器 Odoo的各种应用通过IoT操作各种设备.例如,PoS应用通过IoT操作小票打印机.银行刷卡 ...

  2. Linux 用户及权限详解

    Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...

  3. 超好用的C#控制台应用模板

    本文是Wei的公众号投稿文章: 默认模板之缺 在工作学习中,我们经常需要创建一些简单的控制台应用(Console App)去验证某个想法,或者作为小工具交付给其他同事. 通常我们的选择是 Visual ...

  4. class基本使用

    console.log(` 1.创建一个空对象 2.让this 指向刚刚创建好的空对象 3.执行构造函数内的代码 (为相关的属性和方法赋值) 4.返回创建好的对象`) // 1.创建一个空对象 // ...

  5. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十三 || DTOs 对象映射使用,项目部署Windows+Linux完整版

    更新 很多小伙伴在用 IIS 发布的时候,总是会有一些问题,文章下边 #autoid-6-0-0 我也简单的动图展示了,如何 publish 到 IIS 的过程,如果你能看懂,却发现自己的项目有问题的 ...

  6. 前端笔记之JavaScript面向对象(二)内置构造函数&相关方法|属性|运算符&继承&面向对象

    一.复习 1.1复习上下文 函数的调用方式 上下文 fun() window obj.fun() obj box.onclick = fun box setInterval(fun,1000) set ...

  7. Spring Boot系列(一) Spring Boot准备知识

    本文是学习 Spring Boot 的一些准备知识. Spring Web MVC Spring Web MVC 的两个Context 如下图所示, 基于 Servlet 的 Spring Web M ...

  8. [开源]WinForm 控件使用总结

    背景 都2019年了,还在用WinForm吗?哈哈,其实我也没在用,都是很多年前一些项目积累,所以代码写的有些屎,之所以开源出来,希望能给大家有所帮助,喜欢的话给 一个Star以资鼓励~: 具体代码: ...

  9. JSP 内置对象(上)

    JSP 内置对象是 Web 容器创建的一组对象,不使用 new 关键字就可以直接使用的对象.如上一章中使用脚本实现打印九九乘法表中的out对象 <%-- 脚本:out对象是JSPWriter类的 ...

  10. Python实战171202元组访问

    学生信息系统中数据为固定格式: (名字,年龄,性别,邮箱地址,......) 学生数量很大为了减小存储开销,对每个学生信息用元组表示: ('jim',18,'male','jim8765@gmail. ...