免费SSL/TLS域名证书Certbot配置详细过程

文章目录

  • 1. 在服务器上安装 Certbot
  • 2. 停止 web 服务器
  • 3. 运行 certbot 命令
  • 4. 证书生成位置
  • 5. 配置 web 服务器
  • 6. 重新加载 web 服务器
  • 7. 验证
  • 8. 配置自动续期
  • 发现问题
    • 1. Problem binding to port 80: Could not bind to IPv4 or IPv6.
    • 2. live directory exists for example.com

1. 在服务器上安装 Certbot

  • 对于 Linux 系统,可以通过包管理器安装 Certbot,如 Debian/Ubuntu 使用:sudo apt install certbot,然后输入:“Y”
    installY

2. 停止 web 服务器

  • 停止现有的 web 服务器程序,如 nginx 或 apache。这样可以避免端口冲突(视实际情况而定)。

3. 运行 certbot 命令

  • 这会启动一个临时 web 服务器用来做域名验证,并获取 example.com 和 www.example.com 的证书(其中example需要更换为目标域名)。
    sudo certbot certonly --standalone -d example.com -d www.example.com
    
    执行
    成功

根据证书获取成功的提示信息,可以看出:

  1. 证书和链文件已保存到:/etc/letsencrypt/live/example.com-0002/fullchain.pem
  2. 私钥文件保存到:/etc/letsencrypt/live/example.com-0002/privkey.pem
  3. 证书有效期至2023-11-12
  4. 以后需要续期或更新证书,可以再次运行 certbot
  5. 使用 “certbot renew” 可以自动续期所有证书

通过指定不同的文件名 aihnet.com-0002 避免了与现有证书冲突。接下来的步骤是:

  1. 将新证书配置到 web 服务器程序中,如 nginx 或 apache。
  2. 重新加载 web 服务器使证书生效。
  3. 配置 certbot 的自动续期任务,保证证书持续有效。
  4. 可选删除旧的证书文件。

总体上看,Certbot 已成功帮助获取了新证书,只需要部署到 web 服务器即可完成使用。以后也可以通过 certbot 轻松自动续期。

4. 证书生成位置

  • Certbot 会把证书生成到系统默认路径,如 nginx 的 /etc/letsencrypt/live/example.com/

5. 配置 web 服务器

  • 以 nginx 为例,编辑 /etc/nginx/conf.d/example.com.conf ,指向证书文件路径,并添加 SSL 相关配置。

6. 重新加载 web 服务器

  • 让 nginx 重新加载新的配置文件并启动。

7. 验证

  • 访问网站,检查证书是否正确加载。

8. 配置自动续期

  • 添加 crontab 定时任务,使用 certbot renew 定期续期。

  以上步骤可完成 Certbot 的标准配置。也可以进一步自定义证书保存路径、配置 HTTP 到 HTTPS 重定向等。Certbot 提供了强大的管理 SSL 证书的自动化能力。

发现问题

1. Problem binding to port 80: Could not bind to IPv4 or IPv6.

根据这个错误信息,问题出在Certbot自动验证过程中启动的临时web服务器未能成功绑定80端口。可能原因有:

  1. 80端口被其它进程占用了,需要关闭其他正在使用80端口的程序。可以用netstat -ntlup来检查。检查端口
  2. Certbot默认使用80端口。如果想使用其他端口,可以添加--http-01-port 8080参数来指定端口。
    8080
  3. 防火墙阻止了80端口访问。可以添加规则放行80端口或关闭防火墙测试。
  4. 服务器上存在多个网卡或IP地址,Certbot绑定了错误的地址。可以用--preferred-challenges http参数来强制使用80端口。
  5. 权限不足,需要以root账户运行certbot或使用sudo。
  6. 系统底层资源不足,导致无法打开80端口。可以切换到更强劲的服务器。

  建议先检查80端口情况,关闭占用进程或改换端口。若还未解决,可以尝试关闭防火墙、指定网络地址绑定等方法。保证Certbot能打开80端口则可顺利完成验证,获取证书。

2. live directory exists for example.com

  根据您的命令输出,使用端口8080避免了前面的80端口冲突问题,Certbot验证过程继续进行了下去。但在最后一个步骤时报错显示live目录已存在。这表示您之前已经为example.com生成过证书,并存在默认的证书文件目录/etc/letsencrypt/live/example.com。

出现这个问题的原因可能有:

  1. 你之前使用certbot或者其他工具已经获取过example.com的证书了,现在会冲突。
  2. 上次获取证书过程中失败或被中断,留下了残余文件。
  3. certbot的证书存储路径被修改或指向了自定义目录。
  4. 不同的certbot版本或模式导致了live目录存放路径不一致。

解决方法是:

  1. 检查默认目录,删除或备份 existing 现有的证书文件。
  2. 使用 certbot delete 删除现有证书。
  3. 指定不同的 --cert-path 来改变新证书的存储位置。
  4. 加上 --force-renewal 参数来强制重载证书。

  在清理已存在的旧证书后,就可以重试命令获取新的证书了。也可以考虑切换到 certbot 的 certonly 模式避免冲突。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/99309.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】328. 奇偶链表

328. 奇偶链表(中等) 思路 如果链表为空,则直接返回链表。 对于原始链表,每个节点都是奇数节点或偶数节点。头节点是奇数节点,头节点的后一个节点是偶数节点,相邻节点的奇偶性不同。因此可以将奇数节点和偶…

如何使用Python和正则表达式处理XML表单数据

在日常的Web开发中,处理表单数据是一个常见的任务。而XML是一种常用的数据格式,用于在不同的系统之间传递和存储数据。本文通过阐述一个技术问题并给出解答的方式,介绍如何使用Python和正则表达式处理XML表单数据。我们将探讨整体设计、编写思…

Qt CMake 中国象棋程序实现

前驱课程 C自学精简实践教程 目录(必读) C数据结构与算法实现(目录) Qt 入门实战教程(目录) 项目初衷 为学习 Qt 的人提供一个合适的有一定难度的综合型练习项目。 在学会写代码之前,先看别人怎么写的代码。深入…

蓝桥杯打卡Day1

文章目录 全排列八皇后 一、全排列IO链接 本题思路:本题是一道经典的全排列问题&#xff0c;深度优先搜索即可解决。 #include <bits/stdc.h>constexpr int N10;std::string s; std::string ans; int n; bool st[N];void dfs(int u) {if(un){std::cout<<ans<…

L1-060 心理阴影面积(Python实现) 测试点全过

前言&#xff1a; {\color{Blue}前言&#xff1a;} 前言&#xff1a; 本系列题使用的是&#xff0c;“PTA中的团体程序设计天梯赛——练习集”的题库&#xff0c;难度有L1、L2、L3三个等级&#xff0c;分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度&#xff0c;…

数据结构与算法复杂度介绍

目录 一、基本概念 二、时间复杂度 【2.1】时间复杂度概念 【2.2】大O的渐进表示法 【2.3】举例时间复杂度计算 三、空间复杂度 一、基本概念 数据结构&#xff1a;相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构&#xff0c;散列结构、树…

js中call、apply和bind:

文章目录 一、区别:二、案例&#xff1a;三、实现&#xff1a;【1】call实现【2】apply实现【3】bind实现 一、区别: call、apply、bind相同点&#xff1a;都是改变this的指向&#xff0c;传入的第一个参数都是绑定this的指向&#xff0c;在非严格模式中&#xff0c;如果第一个…

69、配置AWS服务,接收来自RTSP流的推送

基本思想:在上一篇的基础和视频教程之后,进行简单的aws服务,进行RTSP流的接收 第一步: 第二步:配置video_stream,记得选择香港节点 同时记录这个信息,后面的策略需要填充 第三步:进行策略设置 第四步:策略设置,选中右上角的创建策略 第五步、进行json填充 第六步:填…

Tequila Works x Incredibuild

关于 Tequila Works Tequila Works 是一家位于西班牙马德里的电子游戏开发商&#xff0c;由劳尔鲁比奥 (Raul Rubio) 和卢兹桑乔 (Luz Sancho) 于2009年创立。该公司著名的游戏产品包括《死亡曙光》(Deadlight)、《霜华》(Rime)、《联盟外传&#xff1a;努努之歌》(Song of Nu…

KaiwuDB 受邀亮相 2023 中国国际“软博会”

8月31日&#xff0c;第二十五届中国国际软件博览会&#xff08;以下简称“软博会”&#xff09;在天津盛大开幕。KaiwuDB 受邀亮相展会&#xff0c;围绕“塑造软件新生态&#xff0c;赋能发展新变革”主题&#xff0c;重点展示自研分布式多模数据库及各大行业解决方案&#xff…

设计模式之适配器与装饰器

目录 适配器模式 简介 角色 使用 优缺点 使用场景 装饰器模式 简介 优缺点 模式结构 使用 使用场景 适配器模式 简介 允许将不兼容的对象包装成一个适配器类&#xff0c;使得其他类可以通过适配器类与原始对象进行交互&#xff0c;从而提高兼容性 角色 目标角色…

Linux--进程--创建子进程一般目的

父进程创建子进程的目的&#xff1a;简单来说&#xff1a;给特定的输入&#xff0c;给出特定的输出 父进程希望复制自己&#xff0c;使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达&#xff0c;父进程调用fork&…