我正在设置一个web应用程序,它将连接到远程web服务,并且需要使用客户端证书。我的web应用程序使用HTTPS进行连接,我已经为我的域配置了现有的通配符证书。
是否可以使用通配符证书中的公钥作为客户端证书?我需要将其提供给远程web服务管理员,以便他们可以将其添加到受信任的客户端证书列表中。
使用通配符的公钥作为我的客户端证书有什么缺点吗?如果我不能/不应该这样做,我可以使用什么样的证书来代替呢?
发布于 2016-03-14 21:07:11
一个缺点是您的私钥现在可能在两台机器上。
根据定义,客户端密钥应该是私有的。如果它是共享的,那么它就不是私人的。
这立即降低了任何人对您的证书的信任。该服务器的所有其他用户(如果有的话)现在都不能信任它,因为它的私钥已知是共享的。
您的问题没有说明您是使用自己的CA还是商业CA。如果它是商业的,您可能会违反CA的条款和条件,共享私钥。
最好只是为您的客户创建另一个证书。如果您正在运行自己的CA,只需创建另一个证书即可。如果它是商业的,要么为您的客户购买一个新的证书,要么得到一个免费的。无论哪种方式,如果您的证书将有一个扩展的密钥使用字段,请确保它包含“客户端身份验证”(而不是“服务器身份验证”)。
正如您澄清的,您的设置是一台充当客户端和服务器的机器。在这种情况下,您需要了解用于服务器身份验证和客户端身份验证的证书配置文件之间的细微差别:
服务器证书将具有服务器的DNS名称,如CommonName (CN)或主题备选名称(SAN),或两者兼而有之。客户端证书通常会将您的电子邮件地址作为CN,尽管没有理由它不能是其他任何东西。
服务器证书的扩展密钥使用扩展应该是server authentication,而对于客户端证书则应该是client authentication。这可能会引起问题。
https://serverfault.com/questions/763717
复制相似问题