我找到了以下方案,通过使用自定义根 CA 来保护企业软件的各个部分。这是做这种事情的正确方法吗?这种方式有问题吗?
方案:
- 我有我的自定义根 CA。有一组由该 CA 创建的简单证书。
- 有一个 .NET 程序集集。来自集合 A 的程序集使用来自我的 CA 的证书 A 签名,来自集合 B 的程序集使用来自我的 CA 的证书 B 签名。
- 有一组信任我的 CA 的客户端(在证书管理单元中的第三方根 CA 文件夹中有它的证书)。
- 使用受信任证书签名的程序集可以正常工作,使用不受信任证书签名的程序集将无法正常工作。
- 我撤销了证书 B(在我的具有根 CA 的服务器上)。
问题:
- 信息(证书 B 被吊销)是否会使用 OCSP 自动发送给每个客户端?
- 是否每个程序集负载都会使用 Internet 连接进行 OCSP 调用?是否每台装有我的程序集的计算机都会进行此类调用?
- 如果域中的一台计算机没有互联网连接,它会继续信任被撤销的证书吗?
- 它是受保护的方式吗 - 客户端可以中断 OCSP 请求、阻止我的服务器地址等吗?
- 证书 B 是否会自动放置到客户端服务器上的 Untrusted Certificates 文件夹中?
- 那么,一般来说,客户端可以让我的软件使用不受信任的证书吗?
- 是否可以从程序集中清除此证书标志?