我很难理解如何使用<keygen>
.
我找不到它的演示,它用于身份验证。当我添加<keygen>
标记到表单,它发送公钥。
拿到公钥后应该做什么?
有人可以给我使用的示例应用程序吗<keygen>
并进行身份验证吗?
我的解释来自这个 PHP/Apacheexample http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20080714/07ea5534/attachment.txt。这是一个简化的解释,请查看原始示例以获取完整的详细信息。
客户端为服务器生成公钥并保留私钥。
<form>
<keygen name="pubkey" challenge="randomchars">
<input type="submit" name="createcert" value="Generate">
</form>
服务器提取公钥:
$key = $_REQUEST['pubkey'];
服务器构建客户端证书:
$command = "/usr/bin/openssl ca -config ".$opensslconf." -days ".$days." -notext -batch -spkac ".$certfolder.$uniq.".spkac -out ".$certfolder.$uniq." -passin pass:'".$capw."' 2>&1";
$output = shell_exec($command);
并将其发送回客户端。
然后,您可以配置 Apache 以允许访问经过身份验证的客户端:
SSLEngine on
SSLCipherSuite HIGH:MEDIUM
SSLCertificateFile /etc/CA/certs-pub/domain.der
SSLCertificateKeyFile /etc/CA/certs-priv/domain.pem
SSLCACertificateFile /etc/CA/certs-pub/ca.pem
SSLCARevocationFile /etc/CA/crl/cacrl.pem
<Location /secure_area/>
SSLVerifyClient require
SSLVerifyDepth 1
</Location>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)