Letsencrypt+certbot为域名免费配置ssl

1、基础概念

Let’s Encrypt 是一个提供免费 SSL/TLS 证书的认证机构,它的目标是让互联网上的通信更加安全,特别是普及 HTTPS。通过 Let’s Encrypt 提供的证书,网站可以使用加密连接,保护用户的数据传输。

Certbot 是一个由电子前沿基金会(EFF)开发的开源工具,它可以自动化获取和更新 Let’s Encrypt 证书的过程。简而言之,Certbot 是用来与 Let’s Encrypt 的服务进行交互,帮助网站管理员轻松地申请、安装和更新 SSL 证书。

前提条件:

  1. 首先,配置自己服务器的域名,有一个可以公共访问的域名,然后关联配置到服务器,这部分此文不做赘述。
  2. 确认适合自己系统的具体命令,以下步骤以 Ubuntu 的系统为例。

2、安装 Certbot 插件

先更新系统的包管理器

sudo apt update

确保你的服务器上已经安装并运行 Nginx:
检查 Nginx 是否安装:

nginx -v

如果未安装,可以使用以下命令安装:

sudo apt install nginx

启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

安装 Certbot 的 Nginx 插件
对于基于 Debian/Ubuntu 的系统,需要安装 python3-certbot-nginx 包:

sudo apt install python3-certbot-nginx

重新运行 Certbot
插件安装完成后,重新运行 Certbot 以获取并配置 SSL 证书:

sudo certbot --nginx

按照提示完成证书的获取和配置过程。Certbot 会自动检测你的 Nginx 配置,并为指定的域名安装 SSL 证书。
在这里插入图片描述

3、自动续期

虽然 Certbot 通常会自动配置续期,手动测试续期过程以确保一切正常:

sudo certbot renew --dry-run

如果没有错误提示,说明自动续期配置正确。

此外,既然定时器已设置为自动执行,如果希望验证是否能够按时触发,可以等到预定的时间,或者手动触发服务来测试:这将立即触发
certbot 执行证书更新操作。

sudo systemctl start certbot.service

检查 certbot 的服务状态:

sudo systemctl status certbot.timer

在这里插入图片描述

查看当前证书的状态以及是否即将过期:

sudo certbot certificates

在这里插入图片描述

4、手动续期

运行命令

sudo certbot renew

等待自动续期完成即可

在这里插入图片描述

5、开放80端口、确保nginx配置

否则就会报错

  • 确保服务器可以访问端口 80 和 443:
sudo ufw allow 'Nginx Full'

想要 Certbot 自动续期成功,需要开放80端口 443端口
这是因为certbot 在进行域名验证时通常使用 HTTP 或 HTTPS 服务来验证所有权。如果服务器上没有正确运行 HTTP (80端口) 或 HTTPS (443端口) 服务,验证过程也会失败。

Failed to renew certificate xxx.com with error: Some challenges have failed.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
All renewals failed. The following certificates could not be renewed:/etc/letsencrypt/live/xxxx.com/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)
  • 检查 Nginx 配置是否正确:
    在某些情况下,Nginx 的配置文件可能有误,导致 Certbot 无法正确配置 SSL。可以使用以下命令测试 Nginx 配置:
sudo nginx -t

如果有错误,请根据提示修正配置文件。

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

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

相关文章

BSD协议栈:UDP发送

BSD实现 在BSD中UDP头部数据结构如下: /** Udp protocol header.* Per RFC 768, September, 1981.*/ struct udphdr {u_short uh_sport; /* source port */u_short uh_dport; /* destination port */short uh_ulen; /* udp length */u_short uh_sum; /* udp …

QT (四)模型/视图 QFileSystemModel,QStringListModel,QStandardItemModel

思考:QTableWidget 在某种程度上可以等价为QStandardItemModel,同理,其他的功能也有类似的等价,但是以当前的QTableWidget 和QStandardItemModel为例的话,两者都是用于实现建立表格的相关组件,只不过QStand…

Unity热更新方案HybridCLR+YooAsset,从零开始,保姆级教程,纯c#开发热更

文章目录: 一、前言二、创建空工程三、接入HybridCLR四、接入YooAsset五、搭建本地资源服务器Nginx六、实战七、最后八、后记 一、前言 unity热更有很多方案,各种lua热更,ILRuntime等,这里介绍的是YooAssetHybridCLR的热更方案&a…

Zabbix——监控Windows下某个文件夹的所有文件变化

获取所有的指定路径下的文件列表 以D:\Apps这个文件夹下的所有文件为例,我需要找到这个文件夹里面的子文件夹中的所有文件,但是排除backup这个文件夹,下面我们来看怎么操作 在scripts目录下创建check_file_in_D_Apps.ps1文件,内容…

C++ Primer 函数匹配

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树,最坏情况o&…

Docker拉不下来镜像问题解决法案

打开docker的设置界面 配置如下: vi /etc/docker/daemon.json {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["…

春招项目=图床+ k8s 控制台(唬人专用)

1. 春招伊始 马上要春招了,一个大气的项目(冲击波项目)直观重要,虽然大家都说基础很重要,但是一个足够新颖的项目完全可以把你的简历添加一个足够闪亮的点。 这就不得不推荐下我的 k8s 图床了,去年折腾快…

wordpress主题插件开发中高频使用的38个函数

核心模板函数 get_header()/get_footer()/get_sidebar() – 加载模板部件 the_title()/the_content()/the_excerpt() – 显示文章标题、内容、摘要 the_post() – 循环中获取文章数据 bloginfo(‘url’) – 获取站点URL wp_head()/wp_footer() – 输出头部/尾部代码 wp_n…

vue点击左边导航,右边出现页面步骤

vue点击左边导航&#xff0c;右边出现页面 步骤 一定要import不然会出错 index.js Course作为Homeview子路由 Homeview加入<Routerview> 点击跳转<RouterLink to> 父Homeview中有RouterView&#xff08;路由出口&#xff0c;跳转至相应路径&#xff09;和Router…

阿里云视频点播,基于thinkphp8上传视频

前端参考官方示例(jQuery版) <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>阿里云 JavaScript上传SDK Demo (使用jquery)</title><script src"__STATIC__/jquery.min.js"></script><sc…

力扣 66.加一 (Java实现)

题目分析 给定一个数组&#xff0c;可以组成一个数字&#xff0c;将数字加一后&#xff0c;返回新数组 思路分析 首先跟着题目思路走&#xff0c;将数组按位*10可以得到数字&#xff0c;再加一&#xff0c;加一后按位%10&#xff0c;可以得到新的数组。但是此处数字会过大&…

[特殊字符] 用Rust重塑Web开发速度极限:Hyperlane框架——开启高性能服务的「光年时代」[特殊字符]

&#x1f525; 每秒百万级请求&#xff1f;Rust超新星Hyperlane框架让Web开发突破性能次元壁&#xff01;&#x1f525; &#x1f31f; 颠覆性技术亮点&#xff1a;为何全球顶尖工程师正疯狂迁移至Hyperlane&#xff1f; ⚡️ 「速度即正义」&#xff1a;重新定义Web性能天花…

DeepSeek与ChatGPT:AI语言模型的全面对决

DeepSeek与ChatGPT&#xff1a;AI语言模型的全面对决 引言&#xff1a;AI 语言模型的时代浪潮一、认识 DeepSeek 与 ChatGPT&#xff08;一&#xff09;DeepSeek&#xff1a;国产新星的崛起&#xff08;二&#xff09;ChatGPT&#xff1a;AI 界的开拓者 二、DeepSeek 与 ChatGP…

visutal studio 2022使用qcustomplot基础教程

编译 下载&#xff0c;2.1.1版支持到Qt6.4 。 拷贝qcustomplot.h和qcustomplot.cpp到项目源目录&#xff08;Qt project&#xff09;。 在msvc中将它俩加入项目中。 使用Qt6.8&#xff0c;需要修改两处代码&#xff1a; L6779 # if QT_VERSION > QT_VERSION_CHECK(5, 2, …

联想笔记本电脑摄像头灯亮,但没有画面怎么解决,

联想小新电脑&#xff0c;遇到电脑黑屏。 解决方法&#xff0c;搜索打开任务管理器 打开联想管家的路径 打开BatterySetting.exe 程序 然后右下角会弹出一个东西&#xff0c;关闭这个摄像头的隐私模式。就可以打开了 就可以了

蓝桥杯单片机大模板(西风)

#include <REGX52.H> #include "Key.h" #include "Seg.h" //变量声明区 unsigned char Key_Val,Key_Down,Key_Old;//按键扫描专用变量 unsigned char Key_Slow_Down;//按键减速专用变量 10ms unsigned int Seg_Slow_Down;//按键扫描专用变量 500ms …

ubuntu服务器 如何配置安全加固措施

下面提供一个更详细、一步步的服务器安全加固指南&#xff0c;适合新手操作。我们将从 Fail2Ban、SSH&#xff08;密钥认证及端口更改&#xff09;、Nginx 速率限制和日志轮转四个方面进行优化&#xff0c;同时补充一些额外的安全建议。 新的服务器&#xff0c;通常我们会创建一…

ESP32通过MQTT连接阿里云平台实现消息发布与订阅

文章目录 前言 一、准备工作 二、阿里云平台配置 三、代码实现 总结 前言 本文将介绍如何使用ESP32开发板通过MQTT协议连接阿里云物联网平台&#xff0c;并实现消息的发布与订阅功能。我们将使用Arduino IDE进行开发&#xff0c;并借助PubSubClient库实现MQTT通信。 一、准备…

Ubuntu下载安装Docker-Desktop

下载 Ubuntu | Docker Docs 预备工作 Ubuntu增加docker apt库-CSDN博客 安装 sudo apt-get updatesudo apt install gnome-terminal# sudo apt install -y docker-composesudo apt-get install ./docker-desktop-amd64.deb 测试 sudo docker run hello-worldHello from D…