为什么 StrongSwan charon-cmd 客户端需要多个 CA 链证书的 --cert 命令行选项?

为什么 StrongSwan charon-cmd 客户端需要多个 CA 链证书的 --cert 命令行选项?

我在 Ubuntu 18.04 上有一个 StrongSwan charon 服务器。我使用另一台 Ubuntu Linux 机器上的 StrongSwan charon-cmd 客户端连接到该服务器。

我从客户端机器用来连接服务器的命令是:

charon-cmd --cert ./GoDaddyCA1.crt --cert GoDaddyCA2.crt --host xxx.example.com --identity myusername

它运行良好,但我不明白为什么需要在命令行中使用两个“--cert”选项来信任链中的两个 GoDaddy CA 证书。

我的个人证书由 StrongSwan 服务器提供,其权限为 GoDaddyCA1.crt。GoDaddyCA1.crt 证书的权限为 GoDaddyCA2.crt 证书。GoDaddyCA2.crt 是自签名根证书。

因此,权威链是:

MyPersonalCert.crt -> GoDaddyCA1.crt -> GoDaddyCA2.crt

charon-cmd 命令行选项“--cert”的意思是声明“这是我信任的证书”。因此,我希望通过信任 GoDaddyCA1.crt,我的个人证书也应该受到信任。

但这对于 charon-cmd 来说还不够好。charon-cmd 客户端要求我指定“--cert”以信任自签名证书。但这似乎是多余的。如果我信任中间 CA 证书,那么显然我也必须信任它的权威 CA 证书,对吗?

这是错误还是功能?如果是功能,它有什么好处?

答案1

中级 CA 证书目前不被接受为 strongSwan 中的信任锚,只有自签名根 CA 证书才被接受。

如果服务器随服务器证书一起发送了中间 CA 证书,则您只需信任根 CA 证书(即--cert GoDaddyCA2.crt足够)。如果没有,请确保已安装该证书并检查配置(send_cert例如swanctl.conf)。只有当这不是一个选项时,您才无法避免必须在客户端上配置两个证书。

相关内容