使用certbot制作免费Lets encrypt SSL证书

利用 certbot软件包可以免费制作SSL证书 这对小网站和测试项目太有用了,下面记录一下制作证书的流程和方法。以备后用。以centos7系统为例 其他系统类似。


yum install -y epel-release
yum install -y certbot

制作证书前需要先准备好域名的访问环境,因为制作证书的时候需要确认域名和服务器的所有权。

1、dns验证

 dns验证需要加参数 --preferred-challenges dns 来定义,主要就是配置域名的txt记录即可。 下面主要是用单机验证方式。

2、服务器文件验证

 需要服务器开放80端口、配置nginx的静态文件访问目录。但是需要制定 webroot参数来路径,会生成一个文件,然后访问这个文件是否能成功访问到。 成功则验证通过

3、单机生成

 不需要额外的支持 命令加--standalone来指定 需要关闭nginx或者apache才能执行。

certbot certonly --standalone -d xxx.test.com -m taoxxx@foxmail.com --agree-tos

这一步可能有环境问题报错的情况 自行百度解决。
如果出现 Problem binding to port 80: Could not bind to IPv4 or IPv6. 这种错误 可以把nginx或者apache关了再重新执行上面生成证书的命令

生成成功后会输入下面提示,打印了证书的路径在 /etc/letsencrypt/live/xxx.test.com/,过期时间为90天,以及续期的命令。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/xxx.test.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/xxx.test.com/privkey.pem
   Your certificate will expire on 2022-07-06. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le


server {
        listen 443 ssl http2;
        server_name  xxx.test.com;
        client_max_body_size 1024M;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        keepalive_timeout 4800;
        index             index.html;
       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
       ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
       ssl_prefer_server_ciphers on;
       ssl_session_cache shared:SSL:10m;
       ssl_session_timeout 10m;
       ssl_certificate /etc/letsencrypt/live/xxx.test.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/xxx.test.com/privkey.pem;
       ....省略
}

重启nginx 用https访问服务可以看见浏览器的一个小锁就表示https证书部署成功了。

因为这个免费证书只有90天的有效期,到了就需要续期才能继续使用,目前只能手动续期 执行命令 certbot renew。但是可以用定时任务的方式每天续费一次 好像也可以一劳永逸。

crontab -e


0 */6 * * * certbot renew --quiet && nginx -s reload

1、查看已经生成的证书

certbot certificates

2、吊销证书

certbot revoke --cert-path "/etc/letsencrypt/live/xxx.test.com/cert.pem"

由于环境的不同 会遇到各种坑 用docker的方式来创建和续期是可复制性最高的。

Original: https://www.cnblogs.com/peachyy/p/16306219.html
Author: peachyy
Title: 使用certbot制作免费Lets encrypt SSL证书

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622493/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JAVA压缩ZIP文件

    csharp;gutter:true; public static void main(String[] args) throws IOException { String pat…

    Java 2023年5月29日
    093
  • 厉害!我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证!

    小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么锅都想甩给他,啊,不,一不小心怎么把心里话全说出来了呢?重来! 小二是新来的实习生,作为技术 leader,我还…

    Java 2023年6月9日
    0101
  • SQL(三)DDL、DML、DCL总结

    表的创建 create table 表名( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型 ); 创建student表并指定性别默认为男: create table…

    Java 2023年6月16日
    087
  • SpringBoot 整合WebSocket 简单实战案例

    转载:https://blog.csdn.net/qq_35387940/article/details/93483678 Original: https://www.cnblog…

    Java 2023年5月30日
    057
  • Spring 5 源码解析- AOP原理分析-5

    这里以 配置文件(UserAOPTest-context.xml)信息: xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst…

    Java 2023年6月6日
    064
  • nginx:alias的使用

    1.访问目录不在nginx的主目录下,location和alias必须以 / 结尾。 location /gps/ { alias "D:/data/gps/"…

    Java 2023年5月30日
    0107
  • 面试官:Java中对象都存放在堆中吗?你知道逃逸分析?

    面试官:Java虚拟机的内存分为哪几个区域? 我(微笑着):程序计数器、虚拟机栈、本地方法栈、堆、方法区 面试官:对象一般存放在哪个区域? 我:堆。 面试官:对象都存放在堆中吗? …

    Java 2023年6月7日
    084
  • MySQL六:InnoDB数据文件

    转载~ 一、数据文件的组成 innodb数据逻辑存储形式为表空间,而每一个独立表空间都会有一个.ibd数据文件,ibd文件从大到小组成: 一个ibd数据文件–>S…

    Java 2023年6月8日
    094
  • springAOP的动态代理的原理

    JDK 的基于接口的动态代理: 实现同一接口 利用proxy 和 newProxyInstance , invoke 实现 ========MyJdkProxy========pu…

    Java 2023年6月6日
    080
  • java 递归转非递归(树形转非树形)

    接着上一篇讲,在上一篇我们已经将数据通过递归转成了树形结构。 如何将树形结构转非树形结构?(仍然按照树形层级关系进行平铺显示) 如何将递归函数转成迭代函数? 查看代码 [{ nam…

    Java 2023年5月29日
    0128
  • 设计模式—六大设计原则

    六大设计原则 单一职责原则 我们分别看两个案例,一个是遵守单一职责原则,另一个是违背。 违背的案例 public class Computer { void calc() { Sy…

    Java 2023年6月7日
    088
  • java基础之运算符的优先级

    运算符的优先级(从高到低) 优先 描述 运算符 1 括号 ()、[] 2 正负号 +、- 3 自增自减,非 ++、–、! 4 乘除,取余 、/、%* 5 加减 +、- …

    Java 2023年6月6日
    071
  • Java连载154-IO总结(一)

    一、类图 基本上IO可以分为字节流和字符流 二、字符大小 一般来说一个字母占用一个字节,一个汉字占用两个字节。具体还要看字符编码,比如说在 UTF-8 编码下,一个英文字母(不分大…

    Java 2023年6月13日
    085
  • MyBatis 缓存机制

    MyBatis 包含一个非常强大的查询缓存特性,它可以非 常方便地配置和定制。缓存可以极大的提升查询效率。 MyBatis 系统中默认定义了两级缓存,也就是 一级缓存和二级缓存: …

    Java 2023年6月8日
    072
  • leetcode2. 两数相加

    题目描述 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你…

    Java 2023年6月9日
    063
  • Java基础语法(二)

    Java基础语法(二) 合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。 ——《道德经》 Java基础语法(二) – 十、用户交互 Scanner 类(引用…

    Java 2023年6月9日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球