Hom*_*mam 3 windows security authentication self-signed x509certificate2
我想使用证书对部署在不同服务器上的系统进行身份验证。如果不是自签名证书,那么在生产环境中让每个系统都有自己的证书并信任其他服务器应该是什么?
签名证书是付费的,我认为我不需要它们,因为我没有用户交互。我对吗?
这里的区别并不是真正的“自签名”与“签名”。正确的区分是“商业”与“内部”。商业证书供应商正在向您出售一件事:他们在主要浏览器和操作系统的根存储中拥有证书。Verisign 签署的证书与您签署的证书在技术上没有区别。威瑞信在这个列表中只有一个签名证书,而你没有。
所以你是对的。对于内部身份验证,没有安全理由支持商业证书。您仍然必须同样小心地保护您的私钥。商业证书提供便利,而不是安全。你付给他们一些钱,你不必担心一些配置。
但是你可以用便利换取金钱。有两种方法可以做到这一点:内部根和证书固定。使用内部根,您只需创建一些签名根证书(“证书颁发机构”)并将其放入服务器的受信任根存储中。然后向您自己发出 CSR(证书签名请求),对其进行签名,并将其应用于您的服务。
证书固定只是跳过证书颁发机构步骤。只需获取所有服务证书,并将它们直接放入服务器的受信任根存储中即可。然后没有间接。
每种方式都有其优点。我倾向于将所有其他东西都固定在一起,因为它将我与特定证书联系起来,而不是链条。但无论哪种方式都很好。
当然,具体细节将高度依赖于您没有列出的工具链,但您的问题表明您已经知道如何创建证书。
请记住,您的安全将取决于保护您的私钥。但商业证书也是如此。