c# - 如何为 IIS 创建自己的证书颁发机构?

标签 c# ssl

我厌倦了为我的客​​户购买 SSL 证书。我们平均每月花费数千美元。 有人可以告诉我如何启动我自己的证书颁发机构(不是自签名证书)吗?此 SSL 适用于 IIS。

看起来 IIS 可以发布自签名,OpenSSL 也可以做同样的事情,我不想要它,除非它可以像 Verisign 和其他大公司一样提供完整的 SSL。

最佳答案

如果您想推出自己的证书颁发机构(假设用于封闭的公司内部基础设施),您首先(令人惊讶的是)创建一个自签名证书,该证书将充当根 CA 证书。然后生成第一个子证书 - 中间 CA 证书。现在将根证书的私钥放在安全的地方 - 很可能您多年都不需要它。中间CA证书用于颁发最终用户(或其他子CA)证书。

如果您希望标准浏览器和其他客户端软件能够识别您的证书,您需要找到一种方法将您的公共(public)根证书添加到操作系统本身以及这些浏览器和客户端中的受信任根列表中(如果它们有自己的证书存储。这是一个复杂的过程,对于每个操作系统和每个浏览器来说都是不同的。它涉及重复审核、遵守严格的程序等。

同样,如果您创建仅供公司内部使用的证书,您可以制作软件安装程序(或仅编写自定义脚本或应用程序),将您的证书添加到每个用户计算机上的受信任根列表中。这可以在代码中完成,几乎没有问题,但用户必须 (a) 运行该脚本或程序,以及 (b) 确认添加证书。对于某些浏览器或其他客户端应用程序,该过程可能会更复杂。

创建 CA 的过程是一个相当复杂的主题。我建议您在继续之前阅读一些有关 PKI 的书籍。以下是我推荐的好书:

  1. Rsa Security's Official Guide to Cryptography
  2. PKI: Implementing & Managing E-Security

关于c# - 如何为 IIS 创建自己的证书颁发机构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729883/

相关文章:

ssl - 1 个 SSL 证书服务于单独的服务器

c# - 改变 List<Point> 项的值

c# - 如何同步两个多行文本框的滚动?

c# - 如何从另一种方法读取路径

google-chrome - 主题备用名称丢失 & ERR_SSL_VERSION_OR_CIPHER_MISMATCH

java - 在 Dataflow 中运行 Apache Beam Pipeline 时出现 SSLHandshakeException

ssl - 为根域生成 CSR(是否包含 www?)

c# - 检测当前 Outlook 窗口是否为转发电子邮件?

c# - 使用 asp.net mvc 上传多个文件/文件路径

ssl - 使用 curl 显示收到的证书?