我试图请求浏览器以编程方式发送已安装的p12证书进行身份验证。
以下代码段根据需要生成证书:
$res = \openssl_pkey_new(Config\authentication_key_options());
\openssl_pkey_export($res, $private);
$public = \openssl_pkey_get_details($res);
$public = $pubKey["key"];
# Generate the x509 cert
$csr = \openssl_csr_new(Config\authentication_dn(), $private);
$x509 = \openssl_csr_sign($csr, null, $private, Config\AUTHENTICATION_CERT_VALID_FOR);
# Generate the pcks12
\openssl_pkcs12_export($x509, $p12, $private, null);
然后将生成的证书发送到客户端浏览器进行下载,并将私钥保存在服务器端以供以后使用。
我已将以下内容添加到apache的配置中:
SSLVerifyClient optional_no_ca
SSLVerifyDepth 10
SSLOptions +ExportCertData +StdEnvVars
如果没有这样做,我尝试让我的测试脚本发送401标头,但无济于事。添加WWW-Authenticate选项同样不成功:
header("HTTP/1.0 401");
header("WWW-Authenticate: Basic");
header("WWW-Authenticate: transport mode=\"tls-client-certificate\"");
那么我必须以编程方式添加(非静态地通过apache' s配置)请求浏览器端证书?
答案 0 :(得分:0)
在做了更多阅读之后,似乎根本无法完成。
回到绘图板我去
答案 1 :(得分:0)
我所知道的是
SSLVerifyClient require