非80端口如何使用Let‘s Encrypt申请https证书?

2024-03-21 09:40

本文主要是介绍非80端口如何使用Let‘s Encrypt申请https证书?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天晚上在服务器上为 nginx 部署 https 服务器,和之前不同的是,这次使用的 http 端口是 8080,之前使用默认的 80,因此使用 Let's Encrypt 生成证书时并没有以前那么顺利,如果网站已经开启在了 http 的 80 端口,Let's Encrypt 生成证书太简单了,简单到你不会去思考它的原理。

网上搜索“非80端口 certbot”,看完了换个词搜,回答看了个遍,大多只说操作步骤,不说为什么要这么做,按照这些操作步骤操作了很多次仍没有成功。此时已经是晚上11点了,想起吴军老师的话,今天做不完的事情,一定要留到明天做,我合上电脑,决定立即休息(之前也遇到技术问题搞到深夜 2-3 点,仍然搞不定,影响到第二天的状态,得不偿失,熬夜非常不值)。有些问题晚上11点还没解决,熬夜也大概率解决不了。

早上 6 点爬起来,大脑非常清晰,我还是想解决非80端口如何使用Let's Encrypt 申请 https 证书的问题,我突然想起考研数学界的永乐大帝,李永乐老师,他讲过:数学,只有深刻理解的东西,才能更好的感觉它,语文,只有深刻感觉到的东西,才能更好的理解它。这句话我印象特别深刻,他还对此进行发散,数学可以泛指一切理性的事物,比如男人、科学技术,语文也泛指一切感性的事物,比如女人、艺术等。就计算机技术来说,如果不深刻理解背后的原理,是无法轻松驾驭的。

于是我看了官网的这篇文章:https://letsencrypt.org/zh-cn/how-it-works/,明白了它的工作原理。简单来说,就两步,一是要证明你对你的域名有控制权www.rsxedu.com,防止你为别人申请证书,二是证书的颁发和吊销。第二点基本不需要我们干预,自动完成,咱们说下第一点。

有两种方式可以证明你对域名具有控制权:

一是你在你的域名提供商,就是可以绑定 ip 的地方,新绑定一个 TXT 映射,然后 letsencrypt 验证成功了,就说明你对该域名有控制权。截个图如下

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

到这一步就是要你新增一条域名映射记录,类型为TXT,把上图中的那个字符串7rBRoMUcyphsdfdsfsfdfsaa3332rsdfsaOeMv1Tfpk-6phU放在你本应填写 IP 地址的地方,等待个 3 分钟左右,执行以下命令验证:

dig _acme-challenge.xxxlab.cn txt
  • 1.

返回信息中,如果你看到了你填写的字符串,那就说明新添加的域名映射生效了,可以按回车继续生成证书了。

二是,在 https://example.com/ 的已知 URI 下放置一个 HTTP 资源www.meimeitu8.com,这个就是最初提到的网站在 80 端口正常运行,我们就可以在服务器端执行证书申请,这些操作都会自动完成,示意图如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

假设它能够完成上面的任务:它在 https://example.com 站点的指定路径上创建了一个文件。证书管理软件还使用其私钥对提供的 nonce(一次性数字)进行签名。完成这些步骤后,证书管理软件会通知 CA 它已准备好完成验证。

然后,CA 的工作就是检查验证是否已经完成。CA 会验证 nonce 上的签名,并尝试从 Web 服务器下载该文件,并确保其具有 CA 需要的内容。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

最后,如果你还想知道更加具体的生成证书的命令,请访问官网https://letsencrypt.org/zh-cn/,无论是 apache 还是 nginx 都有相应的命令说明。

执行命令不是我们要重点记忆的,那些原理才是。正如李永乐老师教导,只有深刻理解了的东西,你才能更好的使用它。最近在看禅与摩托车维修艺术,作者对摩托车维修进行了禅的论述,很精彩,有段话是这么说的:

老手根本不会照着指示去做,他边做边取舍,因此必须全神贯注于手上的工作,即使他没有刻意这样做,他的动作和机器之间也自然地有一种和谐的感觉。他不需要遵照任何书面的指示,因为手中的机器给他的感觉决定他的思路和动作,同时也会影响他手中的工作。所以机器和他的思想同时不断地改变,一直到把事情做好了,他的内心才真正地安宁下来。

《禅与摩托车维修艺术》

机器会反应出你真正的个性、感受、推理和行动,而不是反应你自吹自擂、膨胀的那一部分。

这篇关于非80端口如何使用Let‘s Encrypt申请https证书?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832354

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min