用于本地网络的 SSL,无需更改路由器或客户端系统

标签 ssl networking https server admin

设置

想象一下放置在本地网络中的服务器。我需要客户端(浏览器)连接到该本地服务器。

我想将该服务器(预先配置有服务器代码的实际硬件)运送给任何客户。

然后应将其插入本地网络,客户必须执行快速设置程序。

不允许服务器连接到互联网。

客户端和服务器之间的所有通信都必须通过 https 进行。

所以现在我正在考虑该问题的解决方案。

我排除的选项是因为它们对用户/管理员来说不切实际

  1. 在每个本地安装服务器颁发的自签名证书 客户端操作系统(尤其不适用于移动浏览器)
  2. 在浏览器中接受“这是一个不安全的证书” 带有自签名证书,因为它只是不专业
  3. 作为客户端的本地应用程序是别无选择的

非常感谢您的帮助,谢谢。

最佳答案

TLS 支持 3 种主要的 key 交换方式

  • 基于证书(RSA、ECDSA-ECDHE 等)
  • 匿名(基于 DH)
  • 预共享 key (PSK)

鉴于您的情况,您需要运送一个服务器盒,并且许多具有预安装浏览器的客户端将使用 HTTPS 连接到您的服务器,并且假设您无法控制这些客户端,则您不能使用 PSK 或匿名机制。我建议如下:

您打算出售的每个服务器盒中都应安装一个唯一的私钥/公钥对。公钥应由知名证书颁发机构认证(即作为证书颁发),其自签名证书通常安装在浏览器中。这应该可以帮助您在服务器和客户端之间建立无缝的 TLS 连接。

证书确实有有效期,但是,您可以尝试申请一个相当长的有效期,并且如果需要的话,应该以与您可能在这些框中更新软件类似的方式更新证书。

关于用于本地网络的 SSL,无需更改路由器或客户端系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124198/

相关文章:

c# - 在 HTTPS 请求中,Request.IsSecureConnection 返回 false

ssl - meteor / Apollo : SSL Access for HTTPS and WS?

ios - 是否可以在 iOS 中使用安全框架生成证书签名请求 (.csr)?

c# - 如何减少远程 SQL Server 负载?

c# 点对点网络 - 绕过路由器

c - 以 wireshark 的方式接收跨子网的 UDP 广播数据包

ios - 获取 iOS 中包含的可信根证书的 PEM 文件(用于验证 gRPC)

ssl - TIBCO SMTP 发送邮件配置-证书问题

android - Android 上的本地 HTTPS 服务器 - 使用 dh 文件

ruby - 如何让 Sinatra 通过 HTTPS/SSL 工作?