服务器和客户端上的证书链

服务器和客户端上的证书链

我有 OpenSSL 证书颁发机构,并且已经生成了根证书(自签名)、中间证书(由根证书签名)、服务器证书(由中间证书签名)和客户端证书(由中间证书签名)。

服务器证书已上传到我的 Cisco ASA(作为身份证书)。此外,我还上传了我的 ASA 根证书和中间证书。

我是否需要在客户端计算机上安装根证书和中间证书?或者客户端证书就足够了?(这适用于应使用客户端证书进行身份验证的 VPN 客户端)

答案1

您有多个 X509 密钥库,有些可能位于不同的地方,有些可能位于同一个地方/文件中。

  • 对于每个 TLS/SSL 侦听器,您都有一个身份密钥库。它包含服务的私钥、服务的证书以及签署该证书的证书链中的所有中间证书。顺序应为服务证书、链、私钥。根证书不应在此处。

  • 对于每个需要使用客户端证书进行身份验证的 TLS/SSL 客户端,您都有一个类似的身份密钥库,其中包含客户端证书、中间证书、客户端密钥。根证书不应该在这里。

  • TLS/SSL 客户端的信任密钥库。这将验证服务器证书。它应该只包含服务的根证书。它也可以包含中间证书。但这些证书可能位于用于中间证书的另一个密钥库中。

  • TLS/SSL 服务器的信任密钥库,用于验证与其侦听器的每个客户端连接。这应该包含用于签署客户端证书的根证书。

  • 您可能拥有一个包含已撤销证书的 X509 密钥库。

在您的情况下,客户端和服务器的根证书是相同的。

答案2

通常,客户端证书是由根 CA 或中间 CA 颁发给客户端的,所以我认为客户端需要有根 CA。否则证书链不完整,无法验证客户端证书。

Cisco AnyConnect 安全移动客户端使用简单证书注册协议 (SCEP) 来调配和续订证书作为客户端身份验证的一部分。AnyConnect IPsec 和 SSL VPN 连接支持使用 SCEP 进行证书注册,方式如下:

SCEP 代理:ASA 充当客户端和证书颁发机构 (CA) 之间的 SCEP 请求和响应的代理。

ASA 必须能够访问 CA,而不是 AnyConnect 客户端,因为客户端不能直接访问 CA。

注册总是由客户端自动启动。无需用户参与。

证书颁发机构要求支持所有符合 SCEP 的 CA,包括 IOS CS、Windows Server 2003 CA 和 Windows Server 2008 CA。

因此 VPN 客户端会安装证书。我绝对建议使用 SCEP 进行客户端证书注册,这样可以为您节省大量工作,无需为每个 VPN 用户部署证书。

相关内容