我正在设计一个C#中的Web API服务,该服务连接到第三方以检索其信息。第三方需要客户端证书进行相互身份验证。代码可以与我的开发机器上安装的证书一起使用。
在编写本文的过程中,我意识到使用X509Certificate2类,在从一个API的支持DLL中的嵌入式资源加载后,我实际上可以从字节数组中加载证书。我的第一个想法是,如果我这样做,它将使部署和未来的扩展更容易,因为托管它的服务器不必在它们上安装客户端证书(它将托管在几个不同的服务器上,并且未来更多)。
我担心的是,我会做一些不安全或不好的做法,特别是因为它还意味着用它(或在数据库中,或其他)存储密码,而不是仅仅在服务器上安装证书。
所以我的问题是,我应该避免这样做吗?我的直觉说我应该避免它,但它会让事情变得更容易。
我并不精通证书,我在网上寻找意见的研究导致了几个关于如何做到这一点的讨论,但我已经知道了。他们似乎都没有解决你应该这样做的事。