0

我正在尝试在我的公司内建立一个内部 CA。这样做的主要目的之一是向我们的客户颁发证书,他们将使用这些证书在我们的客户端和服务器应用程序(均基于 Windows 操作系统)之间建立 TLS 连接。我目前在以下限制条件下工作:

  • 服务器证书将颁发给我们的每个服务器客户,并应安装在客户的服务器上,以便我们的服务器应用程序可以使用它来建立 TLS 会话。
  • 我们的 CA 的受信任根证书将与我们的客户端应用程序一起打包,并且应该与应用程序一起静默安装,以便客户端应用程序可以使用它来验证服务器证书。(假定安装程序在客户端计算机上具有管理访问权限。)
  • 受信任的根证书应可供客户端计算机上的客户端应用程序的任何用户使用,并且不应要求用户提供密码才能访问。
  • 我犹豫是否将受信任的根证书放在本地计算机证书存储的“受信任的根证书颁发机构”部分,因为它可以在更大的范围内使用,而不是简单地验证我们的应用程序(例如,为 IE 验证网页。 ) 如果我们的根证书被泄露,我宁愿限制对我们自己的应用程序的损害。

我应该在哪里以及如何在服务器和客户端机器上安装服务器证书和受信任的根证书(同样,两者都使用 Windows 操作系统)以满足这些限制?

4

1 回答 1

0

Common Application Data 文件夹是 CA 证书和服务器证书的合适位置(但不是服务器私钥!)

安装的“方式”取决于打包和分发方法——对于 WiX,你会使用类似的东西:

<Directory Id="CommonAppDataFolder" Name="ComApptDt" >
    <Directory Id="ProductAppData" Name="ProductName" >
    <!-- add reference to the appropriate certificate here -->
    </Directory>
</Directory>

确定代码中 Common AppData 文件夹的位置取决于编程语言和框架。.NET 有一个Environment.SpecialFolders枚举。对于原生 C++,如何使用 C++ 在 Windows 中获取应用程序数据路径?是一个很好的起点。

于 2012-02-12T07:17:03.463 回答