PHP 5.6.0 released

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose証明書が特定の目的に使用可能かどうか確認する

説明

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )

openssl_x509_checkpurpose() は証明書を調べ、 purpose で指定した目的に使用可能であるかどうかを確認します。

パラメータ

x509cert

調べたい証明書。

purpose

openssl_x509_checkpurpose() の目的
定数 説明
X509_PURPOSE_SSL_CLIENT この証明書を SSL 接続のクライアント側で使用できるか?
X509_PURPOSE_SSL_SERVER この証明書を SSL 接続のサーバー側で使用できるか?
X509_PURPOSE_NS_SSL_SERVER この証明書を Netscape SSL サーバーで使用できるか?
X509_PURPOSE_SMIME_SIGN この証明書を S/MIME email で使用できるか?
X509_PURPOSE_SMIME_ENCRYPT この証明書を S/MIME email の暗号化で使用できるか?
X509_PURPOSE_CRL_SIGN この証明書を証明書取消リスト(CRL)にサインをする際に使用できるか?
X509_PURPOSE_ANY この証明書をあらゆる用途に使用できるか?
これらのオプションはビットフィールドではありません。 指定できるのは一つだけです!

cainfo

cainfo は、証明書の認証 で説明したような信頼できる CA ファイル/ディレクトリの配列です。

untrustedfile

指定した場合は、これが証明書を含むPEMエンコードされたファイルの名前になります。 この証明書は、検証と証明を簡単化するために使用されます。 そのファイル内にある証明書は、信頼されない(untrusted)証明書とみなされます。

返り値

証明書が意図した目的に使用可能である場合に TRUE、使用できない場合に FALSE 、エラーの場合に -1 を返します。

add a note add a note

User Contributed Notes 2 notes

up
0
adr at NOSPAM dot entropymatrix dot com
1 year ago
The following is an example usage of openssl_x509_checkpurpose. It is equivalent to the openssl verify command as follows:
openssl verify -CApath $openssl_cadir -purpose sslserver $openssl_crtfile

<?php
$openssl_crtfile
='auth.combined.pem';
$openssl_cadir='./ca';

$x509_res = openssl_x509_read(file_get_contents($openssl_crtfile));
if(empty(
$x509_res)) {
        echo
'x509 cert could not be read'."\n";
}
$valid = openssl_x509_checkpurpose($x509_res,X509_PURPOSE_SSL_SERVER,array($openssl_cadir));
if (
$valid === true) {
        echo
'Certificate is valid for use as SSL server'."\n";
} else {
        echo
'Certificate validation returned'.$valid."\n";
}
?>
up
-1
chaoszcat at gmail dot com
2 years ago
Few days ago I dual boot my system into Windows 8 and play around with it, and then I boot it back to windows 7, and all of sudden this function fails by returning me 0 all the time.

Spent almost two hours digging google for no result, I almost end my research.

Then (I don't know why) I did a system time update (synchronize with time.nist.gov), and all of sudden, this function returns me 1 (true).

It's true that when I boot back to Windows 7 my time has been screwed by a few hours later than my current time, and I did a manual change on it. I doubt this has anything to do with this function?

Hope it helps.

Keywords: google discovery, openid, discovery
Platform: Windows 7 64bit, PHP 5.3.13
To Top