首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >服务器或客户端是否应该能够验证具有已知根ca的客户机/服务器证书-中间证书链?

服务器或客户端是否应该能够验证具有已知根ca的客户机/服务器证书-中间证书链?
EN

Server Fault用户
提问于 2017-07-07 10:06:34
回答 2查看 915关注 0票数 2

我正在尝试测试以下设置:

RADIUS服务器使用EAP-TLS协议。客户端和服务器具有以下证书:

客户端

公钥:clientcert_intermediatecert_chain.pem

CA-证书:rootcert.pem

服务器

公钥:servercert_intermediatecert_chain.pem

CA-证书:rootcert.pem

客户端证书(clientcert.pem)和服务器证书(servercert.pem)都由同一个中间证书(intermediatecert.pem)签名,中间证书由根证书(rootcert.pem)签名。

这两个被设置为公钥的链像这样组合在一起(通过Shell命令):

cat servercert.pem intermediatecert.pem > servercert_intermediatecert_chain.pem

cat clientcert.pem intermediatecert.pem > clientcert_intermediatecert_chain.pem

现在,客户端尝试连接到服务器。双方都发送公钥,并尝试使用rootcert.pem验证接收到的公钥。

我知道“正常”的方式是,公钥只是服务器或客户端证书。CA证书将是imcert链,但我必须知道这是否也有效。

现在我的问题是:

  1. 公钥是由服务器/客户端证书和中间证书组成的链是否合法?
  2. 如果是,这是否适用于双方(服务器和客户端)?
  3. 如果服务器(如FreeRADIUS)或客户端从计数器部分接收到这样的链,那么它们是否能够使用根证书来验证它们呢?

根据我的经验,FreeRADIUS不验证这样的证书链权利。如果我没有弄错,FreeRADIUS使用OpenSSL库并在上面所示的情况下执行与以下命令相同的操作:

openssl verify -CAfile rootcert.pem clientcert_intermediatecert_chain.pem

我很确定这不管用。OpenSSL无法用根证书验证这样的链。当试图把信任链放在一起时,它失败了。

这是正确的吗?

顺便说一下,FreeRADIUS返回与error 20 at 0 depth: cannot find issuer certificate命令相同的错误,这意味着它不能将信任链放在一起。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2017-07-07 13:02:53

  1. 是的,用普通的中介CA来使用链是很好的。
  2. 是。
  3. 是的,而且确实如此。您需要发布来自FreeRADIUS的调试输出。说它返回“错误20”是没有帮助的。这可能不是FreeRADIUS错误,而是来自OpenSSL的输出。
票数 2
EN

Server Fault用户

发布于 2017-08-02 09:50:58

似乎我的设置的问题是,客户端没有发送完整的客户端中间链,而是只发送客户端证书(使用Wireshark计算出)。反过来,radius服务器发送服务器-中间链,工作良好。

因此,要回答我的问题:是的,这个设置应该在两个方向都能工作。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/859890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档