为网站设置双向ssl身份验证

时间:2015-05-04 11:16:51

标签: php authentication ssl apache2

我想为网站实施双向ssl身份验证。我找不到很多关于这个的文件......

我想要的是类似于StartSSL的东西:

  • 创建客户端证书并将其安装在浏览器上(注册)
  • 尝试访问某些页面(登录)时检查ssl客户端证书

我找到了这个教程:https://www.scriptjunkie.us/2013/11/adding-easy-ssl-client-authentication-to-any-webapp/,我一步一步地跟着它......

这是我正在试验的网站:https://cert.devpgsv.com/getacert.php

(“getacert.php”的代码在这里:https://cert.devpgsv.com/code.php

(我已启用对.htaccess文件的访问权限,以防它有用)

我现在面临的主要问题是:在尝试生成证书时,浏览器会显示:

El servidor a devuelto un certificado de cliente no valido. Error 207 (net:::ERR_CERT_INVALID) 

错误会显示在Google Chrome中,但不会显示在Firefox ......

信息:我在Debian上安装了Apache2。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

找到了答案!

在较新版本的php中,默认情况下我找不到的值。只有当某些条件得到满足时......

我必须在我的.htaccess中添加SSLOptions +ExportCertData +StdEnvVars 然后我改变了运行命令的文件夹的权限,以便" www-data"可以证明证书。

答案 1 :(得分:0)

此警告是一个相当简单的“未定义索引”警告,在尝试访问不存在的数组键时,您会在PHP中获得该警告。在检查密钥之前,使用if (array_key_exists('SSL_CLIENT_S_DN_CN', $_SERVER))检查密钥是否存在。