Windows 环境配置 HTTPS 服务实战

news2025/1/7 19:45:35

一、 环境准备

  1. win10以上操作系统
  2. 安装 Certbot
  3. 申请阿里云\腾讯云域名
  4. 安装 nginx 1.3以上版本

二、Certbot 安装及 SSL 证书生成

Certbot 是一个免费、开源工具,用于自动化在Web服务器上获取和更新SSL/TLS证书。它可以通过Let’s Encrypt服务获取免费的SSL/TLS证书,这些证书用于保护网站和应用程序的通信,确保数据在传输过程中是加密和安全的。

1. Certbot 下载

打开certbot官网地址,选择相应的操作系统及代理软件,此处以 Windows操作系统、nginx 服务为例,下载地址为 https://github.com/certbot/certbot/releases/latest/download/certbot-beta-installer-win_amd64_signed.exe

在这里插入图片描述

2.运行下载的 .exe 文件,进行安装

安装完成后,以管理员模式打开 Windows PowerShell 命令行工具,输入 certBot,

在这里插入图片描述
以上则表名安装成功。

3.申请证书

  • 域名分为主域名 http://test.com 和泛域名 http://*.test.com。
  • 常用命令如下:
# 泛域名:
certbot certonly -d *.test.com --manual --preferred-challenges dns

# 主域名:
certbot certonly -d test.com --manual --preferred-challenges dns
  1. 此文以申请主域名证书 为例,输入主域名信息;
certbot certonly -d test.com --manual --preferred-challenges dns
  1. 输入个人邮箱信息;
  2. 确认协议信息及支持信息,两个都选择 【yes】;
    在这里插入图片描述

4.验证 DNS ,需要按照提示,在你的域名服务商处,添加对应的 DNS TXT 解析记录。
在这里插入图片描述

此处我以我的阿里云域名为例,进行相应配置:

  • 进入【域名控制台】-》【域名列表】-》【解析】页面
    在这里插入图片描述

  • 新增 域名解析记录
    在这里插入图片描述

  • 等待10分钟左右,检查解析是否生效
    在这里插入图片描述

  1. 检测生效后,按回车继续,将生成证书及秘钥信息:
    在这里插入图片描述

如果成功的话,它会生成以下文件:
在这里插入图片描述

三、nginx 配置

下来配置 nginx 配置,我主要使用 nginx 代理我的前端项目,nginx 请自行安装。

我的 nginx 默认配置文件在nginx/config/nginx.conf

以www.test.com 为例,在nginx/config/nginx.conf 文件中,内容如下:

server {
    listen 443 ssl;
    # 子域名
    server_name  www.test.com;
    # 这里是你证书的位置
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    root /usr/share/nginx/html;

    location / {
      # 指向前端资源的路径
      root   html;
      index  index.html index.htm;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

如果能够正常进行域名https访问nginx页面,则本地配置合适:
在这里插入图片描述

四、续期

Certbot 是使用的Let’s Encrypt申请的免费证书,只有 3 个月的有效期,到期之后我们需要再次续期才能继续使用 HTTPS 协议。

4.1 手动续期

你需要自己记录证书到期的时间,在证书到期之前,从新生成一个新的证书

certbot certonly -d test.com --manual --preferred-challenges dns

代码解读
然后根据上文中的 DNS TXT 解析 步骤再配置一次即可,证书保存位置没有变化的话,NGNIX 不需要更新配置。

4.2 自动续期(待验证)

每次都手动配置 DNS 解析挺麻烦的,而且还容易遗忘,更新不及时容易造成服务崩坏。

certbot 提供了一个 hook,可以编写一个 Shell 脚本,在需要续期的时候让脚本调用 DNS 服务商的 API 接口动态添加 TXT 记录,验证完成后再删除此记录,达到自动续期的效果。

使用阿里云服务的话,可以参考脚本:
GitHub 项目 certbot-dns-aliyun
项目地址: https://github.com/justjavac/certbot-dns-aliyun
安装和使用指南在README 中有详细说明

参考文档:

  • 使用Certbot申请免费 HTTPS 证书及自动续期
    https://zhuanlan.zhihu.com/p/611507373
  • 使用OpenSSL命令生成https证书
    https://www.cnblogs.com/songyz/p/15136422.html
  • ngrok-内网穿透实测
    https://zhuanlan.zhihu.com/p/664601185
  • cpolar极点云: 公开一个本地Web站点至公网
    https://www.cpolar.com/
  • 推荐10个内网穿透工具
    https://blog.csdn.net/wholeliubei/article/details/144429820

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

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

相关文章

【C++数据结构——图】最小生成树(头歌实践教学平台习题) 【合集】

目录😋 任务描述 相关知识 带权无向图 建立邻接矩阵 Prim算法 1. 算法基本概念 2. 算法背景与目标 3. 算法具体步骤 4. 算法结束条件与结果 测试说明 通关代码 测试结果 任务描述 本关任务:编写一个程序求图的最小生成树。 相关知识 为了完成…

11.认识异常

本节目标 1.异常概念与体系结构 2.异常的处理方式 3.异常的处理流程 4.自定义异常类 1.异常的概念与体系结构 1.1异常的概念 在Java中,将程序执行过程中发生的不正常行为称为异常,比如: 1.算术异常 System.out.println(10/0);//执行结果 Exception in thread "mai…

基于海思soc的智能产品开发(camera sensor的两种接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于嵌入式开发设备来说,除了图像显示,图像输入也是很重要的一部分。说到图像输入,就不得不提到camera。目前ca…

vulnhub靶场-potato(至获取shell)

arp-scan -l 扫描IP 使用御剑端口扫描扫描端口,扫到了80和7120两个端口,其中7120为ssh端口 使用dirb http://192.168.171.134 扫描目录 发现info.php 访问为phpinfo界面 访问192.168.171.134为一个大土豆,没什么用 所以我们从ssh入手 盲…

Flutter:邀请海报,Widget转图片,保存相册

记录下,把页面红色区域内的内容,转成图片后保存到相册的功能 依赖 # 生成二维码 qr_flutter: ^4.1.0 # 保存图片 image_gallery_saver_plus: ^3.0.5view import package:demo/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; i…

Milvus×合邦电力:向量数据库如何提升15%电价预测精度

01. 全球能源市场化改革下的合邦电力 在全球能源转型和市场化改革的大背景下,电力交易市场正逐渐成为优化资源配置、提升系统效率的关键平台。电力交易通过市场化手段,促进了电力资源的有效分配,为电力行业的可持续发展提供了动力。 合邦电力…

网络层协议之IP数据包层分片随笔

1.全篇内容均在图中,如何分片以及分片举例细节拆解,见下图: 1.1分片公式: 上述公式中有关/8 再*8目的是为了使用8字节对齐,从而使的分片数据包均为8字节整数倍! 1.2.ip层数据包分片计算&图解

TDengine + MQTT :车联网时序数据库如何高效接入

现代新能源汽车,作为一种内部系统极为复杂的交通工具,配备了大量传感器、导航设备、应用软件,这些传感器产生的数据都需要上报到车联网平台当中。对于这些车辆的状态数据(如车速、发动机转速等)、位置数据(…

jenkins入门3 --执行一个小demo

1、新建视图 视图可以理解为是item的集合,这样可以将item分类。新建视频可以选择加入已有的item 2、新建item 1)输入任务名称、选择一个类型,常用的是第一个freestyle project 2)进行item相关配置,general 设置项目名字,描述,参数…

【Vue.js】监听器功能(EventListener)的实际应用【合集】

目录 🤔在实际开发过程中,我遇到了一个颇为棘手的小问题 😋解决这个小问题 问题出现的原因剖析 解决方法阐述 问题成功解决!​ 📖相关知识总结 基本概念 使用方法 实际应用场景 🤔在实际开发过程中…

【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、线性表的基本概念 二、初始化线性表 三、销毁线性表 四、判定是否为空表 五、求线性表的长度 六、输出线性表 七、求线性表中某个数据元素值 八、按元素值查找 九、插入数据元素 十、删除数据元素 测试说明 通关代码 测…

【C++数据结构——查找】二分查找(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、根据键盘输入的一组有序数据建立顺序表 二、顺序表的输出 三、二分查找算法 测试说明 通关代码 测试结果 任务描述 本关任务:实现二分查找的算法。 相关知识 为了完成本关任务,你需要掌握: …

20250103在Ubuntu20.04.5的Android Studio 2024.2.1.12中跑通Hello World

20250103在Ubuntu20.04.5的Android Studio 2024.2.1.12中跑通Hello World 2025/1/3 14:06 百度:android studio helloworld android studio hello world kotlin helloword kotlin 串口 no run configurations added android studio no run configurations added 1、…

卸载干净 IDEA(图文讲解)

目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history,表示同时删除 IDEA 本地缓存以及历史。 Delete I…

【HarmonyOS】鸿蒙应用实现屏幕录制详解和源码

【HarmonyOS】鸿蒙应用实现屏幕录制详解和源码 一、前言 官方文档关于屏幕录制的API和示例介绍获取简单和突兀。使用起来会让上手程度变高。所以特意开篇文章,讲解屏幕录制的使用。官方文档参见:使用AVScreenCaptureRecorder录屏写文件(ArkTS) 二、方…

我的创作纪念日——《惊变128天》

我的创作纪念日——《惊变128天》 机缘收获日常成就憧憬 机缘 时光飞逝,转眼间,我已在这条创作之路上走过了 128 天。回顾起 2024 年 8 月 29 日,我满怀忐忑与期待,撰写了第一篇技术博客《讲解LeetCode第1题:两数之和…

stm32第一次烧录或者上电运行卡死问题分析

问题描述 单片机烧录代码(刚上电)无法立即运行,必须要复位一次或多次才能运行;跟踪调试会进入HardFault_Handler中断。 问题分析 烧录配置如下图,首先排除配置问题那么该问题就比较让人头大了,理论上&am…

YOLOV8训练好的best.pt模型转best.onnx并部署成python可调用

今天这篇博文是学习大佬作品以后,执行我的需求后的总结,做了一些代码调整,就此记录一下,非常感谢大佬提供如此好的输出。 已知yolov8 训练好的模型一般是pt格式,比如best.pt,现在我期望这个模型可以转成可以…

君正T41交叉编译ffmpeg、opencv并做h264软解,利用君正SDK做h264硬件编码

目录 1 交叉编译ffmpeg----错误解决过程,不要看 1.1 下载源码 1.2 配置 1.3 编译 安装 1.3.1 报错:libavfilter/libavfilter.so: undefined reference to fminf 1.3.2 报错:error: unknown type name HEVCContext; did you mean HEVCPr…

基于ASP.NET的动漫网站

一、系统架构与技术实现 系统架构:基于ASP.NET的MVC框架构建,实现网站的层次结构,使得网站更加易于维护和扩展。 技术实现:利用ASP.NET的技术特点,如强大的后端开发能力、丰富的UI控件等,结合前端技术如HT…