我的公司正在创建演示软件。使用时,演示者通过启用 HTTPS 的网站登录以发送文本、文档、身份验证令牌等。
在以下情况下如何启用 HTTPS 通信:
对于那些感兴趣的人,我正在使用 C# 控件 Httplistener 和 PowerShell。
我的一些研究:
如果您的内部域名相匹配的外部域名(例如sales.corp.example.com
),你仍然可以得到大多数公共CA的证书,因为他们将接受的所有权example.com
假设谁就拥有admin@example.com
/ webmaster@example.com
/什么是幸福批准证书请求。该网站本身不需要通过互联网访问。还有其他提供者实现了 Let's Encrypt 的 ACME 协议,因此如果您不能遵守他们的要求,您仍然可以对不同的提供者使用相同的协议。
如果您的内部域的任何部分都不能公开解析(例如,您使用了像 一样的虚假 TLD sales.corp.example.local
),那么您唯一的选择就是使用内部 CA。
如果您想使用内部 CA 来签署您的证书,那么您需要将该 CA 作为受信任的提供商安装在您的所有设备上。如果您想“正确地”执行此操作,则需要进行相当广泛的设置(通常您有一个离线的根 CA,它会签署一个实际签署您的证书的从属 CA)。您需要适当的流程来在根证书到期时轮换根证书以及分发它们的方法(如果您完全集成在没有 Linux 设备的 Windows 域中,这实际上并不难)。
曾几何时,可以去 CA 并要求他们为内部域颁发证书并经过漫长而昂贵的验证程序,但是 2012 年 7 月 1 日引入的新程序禁止任何 CA 颁发任何包含从 2015 年开始使用内部通用名称,并在 2016 年之前撤销现有证书。所以除非你有一台不会发生的时间机器。
作为旁白:
客户安装好软件,一切顺利
这极不可能发生。这些年来我安装了很多企业软件,而 TLS 配置是我一直必须手工完成的事情。您不能假设可以自动配置证书的原因有很多:
事实上,如果您的设备在我的网络上使用自动配置的、有效的、可信任的 SSL 证书开箱即用,我会非常怀疑。有很多设备可以让您一键配置 Let's Encrypt,但它从来都不是默认设置。它总是选择加入。
不允许手动步骤。客户安装了软件,就可以开始了。
如果您不控制最终用户设备,则无需执行任何其他步骤意味着您必须使用其根证书存储(操作系统或浏览器)中已有的 CA。客户的内部 PKI 可以签署您的证书,但前提是他们拥有一个证书,并且它不适用于非托管设备。这就留下了一个众所周知的“公共”CA。
该网站可能是仅供内部使用的网站。(https://letsencrypt.org/ 无法访问。)
所有权质询不必来自获得证书的主机。您提到 Let's Encrypt,他们的 DNS 质询可以从任何互联网可见的 DNS 完成。包括通配符,因此您可以发出*.present.example.com
.
归档时间: |
|
查看次数: |
10286 次 |
最近记录: |