php - 请求用户通过客户端证书对字符串进行签名并在 PHP 中获取此签名

标签 php ssl

我可以使用 apache mod_ssl 通过他的客户端证书授权用户。 现在我需要请求用户用他的客户端证书签署一些字符串并在我的 php 脚本中读取这个标志。 当我在服务器上有 key.pem 但客户端证书在客户端计算机上,安装在浏览器中时,我知道如何使用 openssl_sign 来做到这一点

最佳答案

的确,客户端的私钥(对应客户端证书)就是用来签名的,是不会离开浏览器的。您需要在客户端的浏览器中执行这些操作,而不是在 PHP(服务器)端。

不幸的是,没有跨浏览器进行加密操作(和访问私钥)的通用方法。

您可以从以下内容着手:https://developer.mozilla.org/en/JavaScript_crypto#Signing_text

或者,您可以尝试从浏览器启动应用程序(例如 Java WebStart),尽管这不一定能轻松访问浏览器中的私钥和证书。

关于php - 请求用户通过客户端证书对字符串进行签名并在 PHP 中获取此签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848515/

相关文章:

c++ - OpenSSL:SessionTicket TLS 扩展问题

ssl - SSL 握手成功后,什么可能导致禁止的 403?

C# : How to get SSL handshake response before proceeding to HttpWebrequest?

c# - HttpWebRequest 15 秒延迟性能问题

javascript - 当我禁用标准浏览器使用 javascript 提交时,为什么 Ckeditor 值返回空?

使用代理的 PHP Curl http 请求有 95% 的时间失败,为什么?

php - 使用正则表达式在 php 中过滤一些波斯语单词

php - 查找具有大于或等于给定数字的值的行(mysql)

php - 使用PHP在mysql数据库中上传图片

Delphi XE2 - 无法通过 SSL 连接到 Gmail smtp 服务器