我正努力做到这一点:
我有一群用户登录到我的网站。有些用户可以选择使用他们选择的设备登录。为此,我计划使用用户可以在浏览器中安装的ssl based client certificates
。
然后如何检查是否存在有效证书?我不能仅仅在web服务器(apache
,nginx
)级别使用它,因为只有很少的用户被绑定到设备上。
这个流程在实现级别是如何工作的?我有一个参考点
出于测试的目的,我有一个PKI
设置,它使用一个root CA
和一个intermediate CA
来创建设备证书签名。
发布于 2019-03-29 06:04:41
基本的工作流程是,您不要求客户端证书是强制性的,而是可选的,即在nginx中使用ssl_verify_client optional
而不是ssl_verify_client on
。然后服务器将要求客户端提供一个证书。如果客户端不发送,服务器就不会失败。如果客户端发送了证书,则可以从web应用程序中检查证书的内容。
服务器的具体配置和与web应用程序的集成取决于您使用的特定环境和框架(例如,nginx vs Apache vs IIS vs .,PHP vs ASP vs Django .)必要的细节应在相关文件中提供。任何有关您的程序的特定配置和访问的问题都将更多地成为stackoverflow.com的一个问题。
https://security.stackexchange.com/questions/206348
复制相似问题