使用服务器端证书进行客户端身份验证

时间:2014-04-03 13:04:59

标签: ssl ssl-certificate client-certificates

假设我有一个带有Web浏览器和两台服务器的场景:第一台服务器(web)面向互联网,第二台(worker)是内部服务器。内部web使用worker,但来自外部的每个请求都由web收到。

所以你总是:

browser -> web -> worker

现在我想使用SSL保护两个连接:

  • web应使用浏览器可以验证的服务器端证书。
  • worker应使用服务器端证书web可以验证。
  • web将使用客户端(!)证书worker可以验证。

在这种情况下:是否可以重新使用web的服务器端证书作为worker的客户端证书,或者使用两个单独的证书是否更好?

我应该注意哪些最佳做法?

1 个答案:

答案 0 :(得分:2)

这里有两个方面:安全方面和"技术"方面。

技术方面是证书的证书KeyUsage和ExtKeyUsage扩展名对于服务器端和客户端证书是不同的。工人将检查这些扩展的价值并抱怨。除非您在worker上实现自定义验证器(在这种情况下,您想要的任何证书都可以使用),否则会发生这种情况。

安全方面是,如果私钥因任何原因泄漏,拥有不同的证书(以及私钥)会在一定程度上提高安全性。