我很难理解如何使用<keygen>
。是否有HTML5 keygen示例?
我找不到它的演示,它用于身份验证。当我将<keygen>
标记添加到表单时,它将发送公钥。
得到公钥后应该做些什么?
有人可以给我示例应用程序使用<keygen>
并进行身份验证吗?
我很难理解如何使用<keygen>
。是否有HTML5 keygen示例?
我找不到它的演示,它用于身份验证。当我将<keygen>
标记添加到表单时,它将发送公钥。
得到公钥后应该做些什么?
有人可以给我示例应用程序使用<keygen>
并进行身份验证吗?
的Mozilla这里有一些工作的例子:
https://developer.mozilla.org/en-US/docs/HTML/Element/keygen
请注意,它已被弃用,并在此期间被删除 – 2017-05-16 21:07:59
我的解释来自这个PHP/Apache的example。这是一个简单的解释,看完整的细节的原始示例。
客户端为服务器生成公钥并保留私钥。
<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>
你读过http://stackoverflow.com/questions/4501196/keygen-tag-in-html5? – atomicinf 2012-07-29 17:34:43
是的,我已阅读上述链接。我的问题是在服务器上生成证书并将其发送回用户身份验证。我正在寻找一个完整的例子,它使用keygen公钥 – swingmicro 2012-07-30 06:46:37
生成证书然后你会看到: 该规范没有规定如何使用生成的私钥。预计收到SignedPublicKeyAndChallenge(SPKAC)结构后,服务器将生成一个客户端证书并提供给用户下载;此证书一旦下载并存储在密钥存储中以及私钥中,就可以用于向使用TLS和证书认证的服务进行认证。 – maxwellb 2013-01-11 17:28:04