我已经生成了一个自签名证书,.This自签名证书存储在服务器中,并且只接受来自客户端的请求,而客户端的自签名证书是可以接受的。由于这个HTTPS端点应该只从我们的自定义HTTPS客户机中使用,所以我强烈认为不需要CA签名。但是我的同事警告说,无论我应该做什么.what,都不应该在生产环境中使用自签名证书?
发布于 2018-10-25 14:11:44
有一个完整的基础设施来管理证书的生命周期,称为PKI (公钥基础设施)。CA是其中的一部分,并帮助您管理证书颁发和吊销。
不建议在生产环境中使用自签名证书,因为您放松了证书的生命周期管理。让我们说,如果客户端被破坏,任何持有自签名证书的人都可以与服务器对话。您无法设法撤消该证书或维护CRL。
在您的情况下,理想的解决方案/实现实际上也是从CA向客户机颁发自己的PKCS12,这意味着它们将拥有自己的私钥(如果您有很多客户端,这可能会很昂贵)。但这是最安全的方法。如果您知道一个客户端被破坏了,您可以从CA撤销该客户端的证书,如果客户端进行证书验证(理想情况下应该),它就不能再与服务器通信了。你可以简单的解除那个客户端。
只是一个想法
但是,如果您正在寻找成本效益高的方法(因为您提到了内部调用),您可以让您的服务器向客户端发出P12,并且您的服务器维护哪个客户端拥有什么样的证书的记录。这使您几乎无法控制客户端的管理。您可以在服务器端为这些服务启用基于证书的身份验证(服务器将接收客户端的subjectDN ),通过引用存储的记录,您可以识别哪个客户端正在尝试通信。如果要禁用服务器服务的客户端,只需简单地更新记录。
但要回答您的担忧,使用自签名证书并不理想,因为在现实世界中,您应该能够实时或接近实时地管理证书,如果使用自签名证书,这将是不可能的。
https://stackoverflow.com/questions/52943095
复制相似问题