- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以使用 ssl 证书对网络浏览器进行身份验证。
假设我在我的应用程序中存储了一个私钥,有什么方法可以从浏览器读取 key 并尝试基于它进行身份验证吗?
最佳答案
您可以使用 SSL/TLS 客户端证书身份验证对浏览器/用户进行身份验证。
服务器必须请求客户端证书,因此您需要访问服务器配置(不仅仅是在共享服务器上安装一些 PHP 代码)。这是在 SSL/TLS 层完成的(事实上,该机制并非特定于 HTTPS):服务器在 SSL/TLS 握手期间(有时通过重新协商的握手)请求客户端证书。在 Apache Httpd 中,这通常是通过 SSLVerifyClient
完成的。 (尽管您还需要指定其他选项)。
然后服务器将根据您为其配置的 CA(可能是您自己的,也可能独立于用于服务器证书本身的 CA)验证证书。 (或者,在某些情况下,您可以在服务器级别禁用证书验证,并让 PHP 应用程序执行此操作,但这有点高级,您需要知道自己在做什么。)
您可以从您的应用程序访问客户端证书并获取其主题 DN(或替代名称)以识别客户端。
不清楚您是在识别浏览器 还是用户 之后。最后,无论如何,一切都会通过浏览器,但客户端证书往往会分配给用户。用户必须将该证书安装到他们的浏览器中。
编辑:有关更多详细信息,如果您能澄清您的问题以及您打算用它做什么,将会有所帮助。
Is it possible to authenticate a web browser using an ssl certificate.
Say i store a private key in my application, is there any way to read a key from a browser and try to authenticate based on that?
首先,严格来说,没有“SSL证书”这样的东西,因为多种类型的证书可以用于SSL/TLS,而且其中一些相同的证书还可以用于SSL/TLS以外的其他目的。通常,“SSL 证书”是指“SSL/TLS 上下文中的 X.509 证书”。
因此,使用 SSL 证书对 Web 浏览器进行身份验证意味着在 SSL/TLS 层进行。 (有人尝试在 HTTP 层使用 X.509 证书实现消息级安全,但它们并未得到浏览器的广泛支持。)
其次,私钥由您进行身份验证的远程方持有。对远程方进行身份验证的本地方看不到任何私钥。如果您(作为服务器)想要验证 Web 浏览器,则浏览器需要私钥,而不是您的(大概是 PHP)应用程序。在这种情况下,如果您要验证的浏览器是您的(PHP?)应用程序,那么您的(PHP?)应用程序为什么会有/需要一个私钥还不是很清楚。
您的验证应用程序可能需要的(如果它不是由服务器本身完成的)是一个 CA 证书,以便能够验证它所提供的客户端证书(或者至少是某种形式的信任 anchor ,用于验证客户端证书)。这里不需要私钥,只需要公钥和证书,除非您希望您的应用程序也成为 CA。
的确,您可以让您的应用程序成为一个微型 CA。它可以使浏览器生成 key 对并向服务器发送证书请求(有一种机制可以让网页让浏览器完成所有这些工作)。然后服务器将生成证书并让浏览器根据其私钥将其导回。随后,浏览器可以使用此证书与该服务器(或可以识别这些证书的其他服务器)进行身份验证。
关于php - 使用 SSL 证书验证 Web 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509811/
我在 Cloudflare 的域名服务器上有一个域名 example.com。该域指向我的专用服务器的 IP 地址,该服务器运行 CentOS/WHM/cPanel。该站点可访问 - 一切都很好。 我
我正在努力将 SSL 支持添加到我们现有的应用程序中,并已开始考虑向后兼容性。 与我读过的其他帖子不同的一个特殊情况是服务器可能不一定使用 SSL 代码更新。所以我将有一个 SSL 客户端连接到一个对
我有几个 https://*.rest-service.mydomain.com。随着服务数量的增加,我觉得管理 SSL 证书的成本很高。我为 *.mydomain.com 购买了通配符证书。 新添加
我的客户要求我在他的网站上做反向 ssl。但我是这个学期的新手。谁能帮我解决这个问题。 请描述或引用如何做。 最佳答案 查看 this wiki article . In the case of se
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 去年关闭。 Improve this
我连接到我的网络服务器上的存储库,但是当我尝试推送我的更改时,它显示:“错误 403:需要 ssl”,但在我的存储库设置中我已经激活了 ssl 选项。 有什么建议吗? 最佳答案 当您连接到存储库时,您
抱歉,如果这听起来像是转储问题,我已经阅读了很多关于 SSL 握手和 SSL 工作原理的文章和文档。我对一件事感到困惑,如果有人能澄清我就太好了。 我知道私钥要保密。但是我已经看到通过在请求中指定私钥
随着物联网越来越主流,越来越需要从硬件发送http请求。 一个主要问题是硬件微 Controller 无法发送 ssl 请求,但大多数服务器/网站/服务都在使用 ssl。 所以,问题是,有没有桥(一个
我有一个 ssl 页面,它还从非 ssl 站点下载头像。我能做些什么来隔离该内容,以便浏览器不会警告用户混合内容吗? 最佳答案 只是一个想法 - 或者: 尝试在头像网站上使用 ssl url,如有必要
我在 Digital Ocean droplet(使用 nginx)上设置了两个域。我已经在其中一个(domain1)中安装了一个 SSL 证书,并且那个证书一切正常。第二个域 (domain2) 不
我收到这个错误: Error frontend: 502 Bad gateway 99.110.244:443 2017/09/28 13:03:51 [error] 34080#34080: *10
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 6 年前。 Improve
我遇到了一个问题,我正在构建一个 nginx 反向代理以定向到不同 url 路径上的多个微服务。 该系统完全基于 docker,因此开发和生产使用相同的环境。这在安装 SSL 时给我带来了问题,因为
所以我知道要求 SSL 证书和接受之间的根本区别,一个意味着您必须拥有 SSL 证书,另一个意味着您不需要。 在某个网页的 IIS 管理器中,我有以下设置: 我遇到的问题是,当我设置需要 SSL 证书
我今天才发现 .app 域名需要 SSL 证书。我购买它是为了将 DNS 重定向到已经设置了 SSL 证书的站点,所以我的问题是是否可以设置它? 我正在使用 Google Domains,在将合成临时
堆栈 : react ,NGINX 1.14.0,GUnicorn,Django 2.2.8,Python 3.6.9 错误 : 在浏览器:当 React 调用 Django API(当然是在请求头中
假设我在计算机上编辑主机文件以使 google.com 指向我的 VPS 服务器 IP,并且服务器具有通过 Apache 或 Nginx 配置的 google.com 的虚拟主机/服务器 block
我有一个场景,我正在处理用于 URL 路由的 IIS 网站配置。我已添加网站并在服务器上导入所需的证书。 我的情况是(我有多个网站 URL 和两个 SSL 证书 - 如下所示): qatest1.ab
我知道服务器发送的证书无法伪造(仍然存在 MD5 冲突,但成本高昂),但是伪造客户端又如何呢?在中间人攻击中:我们不能告诉服务器我们是合法客户端并从该服务器获取数据并对其进行操作,然后使用合法客户端公
我已通读相关问题,但无法完全找到我要查找的内容。我设置了一个名为“domain.com”的域,并创建了两个子域“client.domain.com”和“client-intern.domain.com
我是一名优秀的程序员,十分优秀!