首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TLS客户端证书:哪个属性用于授权?

TLS客户端证书:哪个属性用于授权?
EN

Stack Overflow用户
提问于 2019-03-03 12:35:57
回答 1查看 366关注 0票数 0

我正在尝试设置一个web服务,它使用在TLS握手过程中发送的x509客户端证书进行身份验证,并检查用户是否具有访问请求的重新源的自动化。

这样做的想法是,每个用户都有一个访问级别,一些资源只能提供给更高级别的用户。然后,证书将用于将用户与其级别匹配。

配置Apache以根据根CA验证证书并将证书转发给后端应用程序(基于python的XML服务器)没有问题。

但是,我很难选择用于将用户映射到其级别的证书的哪个属性:

  • “公共名称”字段似乎是一个自然的选择,但我想知道这个解决方案有多安全,因为没有什么可以阻止多个中介CN提供相同CN的证书。
  • 公钥本身显然更安全,但是使用它有多实际呢?如果客户在证书到期后必须续签,它会保持不变吗?此外,还存在大得多的字符串的存储和比较速度问题。
  • 整个证书本身或其thumprint拇指指纹可能是公钥的替代方案,但是如果他的证书被更新,客户端将无法连接。

我目前倾向于使用公钥,但在这种情况下,这是否最好的选择?还是有更好的选择?

感谢报仇

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-03 15:33:55

通常,使用客户端证书的身份验证是通过一些私有CA完成的,该CA颁发客户端证书,在验证客户端证书时只信任CA。在这种情况下,受信任的CA和只有此CA才能完全控制证书的主题,这意味着将CN映射到用户是非常好的,而且也是常用的。

如果您出于任何原因希望允许由任意CA颁发的证书,那么这种简单的映射就无法完成,因为您已经意识到了这一点。在这种情况下,可以执行证书公开密钥或证书指纹之间的映射,这当然要求预先知道特定用户需要的确切证书。而且,每当客户端证书由于过期而需要更改时,就需要以某种方式更新此映射。

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

https://stackoverflow.com/questions/54968859

复制
相关文章

相似问题

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