3

自分のサイトの特定のページに、X.509 認証後にのみアクセスできるようにしようとしています。問題は、特定の中間 CAによって発行された一致する証明書を持つすべてのクライアントがそれを利用できるようにしたいということです(自己生成されたルート CA の下にいくつかの中間 CA を持つつもりですが、特定の 1 つの中間 CA によって発行されたクライアント証明書のみが必要です)。 CA はこのページにアクセスできます)。これはPHPを使用して可能ですか?

さらに詳しく説明する必要がある場合はお知らせください。詳細を追加してみます。ご協力いただきありがとうございます!

TC

4

2 に答える 2

2

はい。SSL 拡張機能と openssl_x509_parse 関数を使用して証明書情報を取得すると、証明書内のすべての情報にアクセスできるようになります。PHPスクリプトでこれを行うことができるはずです:

var_dump(openssl_x509_parse($_SERVER['SSL_CLIENT_CERT']));

その配列には、クライアント証明書の発行者に関する情報を含む配列を持つ「発行者」キーがあることがわかります。必要な情報が得られると思います。

于 2011-08-27T02:46:34.400 に答える
1

OpenSSL を使用したくない場合は、純粋な PHP X.509 パーサーである phpseclibの最新の SVN を使用できます。例えば。

<?php
include('File/X509.php');

$x509 = new File_X509();
$x509->loadX509($_SERVER['SSL_CLIENT_CERT']);
echo $x509->getIssuerDN(true);
?>
于 2012-04-23T04:01:23.117 に答える