我很難理解如何使用<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