服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

身份与CA Certs在相互TLS服务器

处理configuration相互TLS(客户端证书)时遇到问题的客户。 根据我的经验,TLS客户端身份validation是由服务器拥有证书,并告诉客户端发送由第一个证书签名的证书。 客户端发送一个(与它签署的东西),服务器validation。 客户正试图在服务器的信任存储中使用CA证书。 在他们的情况下,任何人都可以从该CA申请证书。 所以,这不会与上述 – 因为任何人都可以从CA获得身份certificate并连接。 此行为似乎是Java默认值。 在过去,这是我所采取的方法 – 使用中间证书或可以控制的CA。 我知道一个自定义的Java TrustManager可以在客户端上实现发送任何证书,而不pipe它的来源。 我也知道curl会这样做(忽略CertificateRequest中的证书颁发机构)。 使用这种方法,您可以使用身份证书,而不是CA,所以客户端和服务器可以使用相同的证书,而不pipe其来源。 这里最好的做法是什么? 客户是否提出了合理的要求? 我们也有一个Windows服务器来configuration下一个,我不知道它将如何处理这种行为。 编辑: RFC似乎使此行为可选。 certificate_authorities:可接受的certificate_authorities的可分辨名称[X501]的列表,以DER编码格式表示。 这些专有名称可以为根CA或从属CA指定所需的可分辨名称; 因此,这个消息可以用来描述已知的根以及所需的授权空间。 如果certificate_authorities列表为空,则客户端可以发送任何适当ClientCertificateType的证书,除非有相反的外部安排。 https://tools.ietf.org/html/rfc5246#section-7.4.4