Windows 环境配置 HTTPS 服务实战

一、 环境准备

  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.youkuaiyun.com/wholeliubei/article/details/144429820
### 如何在 Windows 上安装 Certbot SSL 证书自动化工具 对于希望在其 Windows 系统上启用 HTTPS 的用户来说,Certbot 提供了一种简便的方法来管理和部署 Let's Encrypt SSL 证书。然而需要注意的是,在 Windows 平台上官方并不直接提供原生的 Certbot 支持[^4]。 #### 使用 WSL (Windows Subsystem for Linux) 一种推荐的方式是在 Windows 中利用 Windows Subsystem for Linux (WSL) 来运行 Certbot。这允许用户在一个类 Unix 环境下执行命令行工具而无需完全切换操作系统: 1. 启用并更新 WSL 版本至最新稳定版本; 2. 安装所需的 Linux 发行版(例如 Ubuntu),该发行版可通过 Microsoft Store 获得; 3. 打开已安装的 Linux 终端窗口,并按照常规 Linux 方法安装 Certbot 及其插件; ```bash sudo apt update && sudo apt upgrade -y sudo snap install core; sudo snap refresh core sudo snap install --classic certbot ``` 上述脚本适用于基于 Debian/Ubuntu 的系统环境,其他类型的 Linux 发行版可能需要调整包管理器指令[^5]。 #### 配置 Web 服务器以配合 Certbot 工作 为了使 Certbot 正常运作并与所选 web server 进行交互,还需要确保正确设置了域名解析记录指向目标主机 IP 地址[^1]。接着根据使用的具体 web server 类型选择合适的 Certbot 插件来进行集成设置,比如 `python-certbot-nginx` 或者针对 Apache 的相应模块。 一旦完成了这些准备工作之后,就可以继续使用 Certbot 命令来请求新的 SSL/TLS 证书或是对现有证书进行续期操作了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值