PHP 在连接时接收 SSL 证书参数
我需要控制连接到我们的 Web 服务器的客户端的 SSL 证书(主题、数据库中的存在等)。 可以用PHP来做吗? 谢谢。
I need to control SSL certificates (subject, presense in DB, etc.) of clients that connect to our web server.
Is it possible to do in PHP?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PHP 对此无能为力。 SSL 仅由网络服务器处理。然而,Apache 可以配置为在 CGI 环境中传递一些信息。
请参阅 SSLOptions 手册以及可用的
SSL_*
环境变量。您想读出的内容可能是:PHP has no hands in this. SSL is handled by the webserver only. Apache can be configured to pass some information along in the CGI environment however.
See the manual on SSLOptions and the available list of
SSL_*
environment variables. What you wanted to read out is probably:嗯,这是可能的,但需要 Curl 的一点帮助。
在详细模式下运行 cURL 并将输出发送到 PHP(非常简单,对吧?),然后在 PHP 中解析输出,因为存在颁发者名称(OU=安全服务器证书颁发机构 == Verisign)。
IE,一个示例 Curl 调用:
将返回此可解析输出:
另一个选择是 使用 stunnel 来代理您的 HTTPS查询,这样让 PHP“认为”它正在使用标准 HTTP 查询,并且它应该返回输出的每个字节。
Well, it is possible yes but with a little help from Curl.
Run cURL in verbose mode and send the output to PHP (pretty simple right?), then parse the output in PHP as there is the issuer name (OU=Secure Server Certification Authority == Verisign).
IE, a sample Curl call:
Would return this parsable output:
Another option would be to use stunnel to proxy your HTTPS query and that way let PHP "think" that it's using a standard HTTP query and that it should return every single byte of the output.