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

时间:2011-04-20 12:02:07

标签: c# ssl

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

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

2 个答案:

答案 0 :(得分:2)

创建自己的证书颁发机构不是问题。您的问题是创建一个其他人会信任的证书颁发机构

除非您的所有用户都准备接受您签名的证书,否则您创建自己的绝对没有意义,除非您有少量准备信任您的根CA的用户,否则这种情况非常不可能。

让他们信任你,他们将所有根CA安装在他们的网络浏览器上作为可信任的CA,这几乎不是很好的安全措施。

除非您在受控制的环境中工作,并且您的所有用户都是内部用户,或者您有一群非常可信的用户会做您所说的任何事情 - 我建议您忘记这个想法。

答案 1 :(得分:2)

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

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

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

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

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