2012-07-29 10 views
16

<keygen>の使い方が分かりません。HTML5 keygenのサンプルはありますか?

認証に使用されるデモが見つかりませんでした。 <keygen>タグをフォームに追加すると、公開鍵が送信されます。

公開鍵を取得した後に行うべきことはありますか?

誰かが<keygen>を使用して認証を行うサンプルアプリケーションを教えてもらえますか?

+0

あなたがhttp://stackoverflow.com/questions/4501196/keygen-tag-in-html5を読みましたか? – atomicinf

+1

はい私は上記のリンクを読んでいます。私の質問は、サーバーで証明書を生成し、ユーザー認証のためにそれを返信することです。私はkeygen公開鍵 – swingmicro

+1

を使って証明書を生成する完全な例を探しています。 この仕様では、生成された秘密鍵の使用方法は指定されていません。 SignedPublicKeyAndChallenge(SPKAC)構造体を受け取った後、サーバーはクライアント証明書を生成し、それをダウンロードしてユーザーに返します。この証明書は、一旦ダウンロードされ、秘密鍵と共に鍵ストアに格納されると、TLSと証明書認証を使用するサービスの認証に使用できます。 – maxwellb

答えて

8

私の説明は、この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); 

をし、それをクライアントに送り返します。

その後、authentifiedクライアントへのアクセスを許可するように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> 
関連する問題