找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

407

积分

0

好友

47

主题
发表于 2025-12-24 16:35:46 | 查看: 33| 回复: 0

本文主要介绍在Windows操作系统下,为自宿主的Web API服务配置HTTPS协议,实现通过指定本地端口提供加密访问。核心操作包括将SSL/TLS证书导入系统存储,并使用系统命令完成IP、端口与证书的绑定。

摘要

一、导入证书到本地计算机存储

首先,你需要获取有效的服务器证书(.pfx或.cer文件)。随后,通过Windows的MMC(Microsoft管理控制台)将其导入到“本地计算机”的证书存储中。

  1. 按下 Win + R 键,输入 mmc 并回车,打开管理控制台。
  2. 点击菜单栏的 文件 -> 添加/删除管理单元

控制台管理单元添加界面

  1. 在弹出的窗口中,从左侧“可用的管理单元”列表中选择 证书,点击 添加

添加或删除管理单元界面

  1. 在接下来的证书管理单元向导中,选择 计算机帐户,然后依次点击 下一步 -> 完成

证书管理单元界面

  1. 回到控制台主界面,依次展开 证书-本地计算机 -> 个人。右键点击 个人,选择 所有任务 -> 导入,然后按照向导完成证书文件的导入。

证书管理器界面

二、绑定证书到指定IP和端口

证书导入后,需要使用管理员权限的CMD或PowerShell,通过 netsh 命令将其绑定到具体的IP地址和端口上。

# 添加SSL证书绑定
# 注意:
# 1. `ipport`:服务器IP与端口,使用 `0.0.0.0` 可绑定所有IP。
# 2. `certhash`:证书指纹(Thumbprint),获取后需移除所有空格。
# 3. `certstorename`:若证书导入在“个人”目录下,此处应为 `My`。
# 4. `appid`:一个随机的GUID,用于标识应用程序。
netsh http add sslcert ipport=0.0.0.0:443 certstorename=My certhash=你的证书指纹 appid={随机GUID}

# 删除已有的SSL绑定(如需重新配置)
netsh http delete sslcert ipport=0.0.0.0:443

# 查看所有已配置的SSL绑定
netsh http show sslcert

三、处理SSL/TLS协议兼容性问题

在某些旧版Windows系统中,默认启用的SSL/TLS协议版本可能与现代证书不兼容。此时,系统层面的网络协议配置可能需要调整或升级。

你可以通过以下PowerShell命令检查当前系统支持的协议:

[Net.ServicePointManager]::SecurityProtocol

执行命令后,会输出当前已启用的协议列表。

PowerShell命令行输出

如果列表缺少较新的协议(如Tls12, Tls13),可能需要通过Windows服务器的组策略或注册表进行启用,或者考虑升级操作系统。

四、验证端口状态

配置完成后,可以通过以下命令验证端口是否成功监听以及从外部是否可访问。

# 1. 在服务器本地检查端口监听状态(CMD)
# 若看到 `LISTENING` 状态,表示端口已被监听。
netstat -ano | findstr ":443"

# 2. 从外部网络测试端口连通性(PowerShell)
# 返回 `TcpTestSucceeded : True` 表示端口可达。
Test-NetConnection -ComputerName 服务器公网IP -Port 443

完成以上步骤后,你的自宿主Web API服务即可通过HTTPS协议在指定端口进行安全的加密通信。这涉及到证书管理与系统网络配置的结合应用。




上一篇:Vue前端调用Neo4j接口实战:基于Axios的知识图谱数据构建与Cypher查询
下一篇:Shedskin实战:将Python代码转译为C++,实现算法性能百倍加速
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 14:23 , Processed in 0.300337 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表