PHP.mk документација

openssl_x509_checkpurpose

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.openssl-x509-checkpurpose.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.openssl-x509-checkpurpose.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
openssl_x509_checkpurpose

Референца за `function.openssl-x509-checkpurpose.php` со подобрена типографија и навигација.

function.openssl-x509-checkpurpose.php

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_checkpurposeПроверува дали сертификатот може да се користи за одредена намена

= NULL

openssl_x509_checkpurpose(
         OpenSSLCertificate|string $certificate,
         int $purpose,
         array $ca_info = [],
         ?string $untrusted_certificates_file = null
): bool|int

openssl_x509_checkpurpose() го испитува сертификатот за да види дали може да се користи за наведената purpose.

Параметри

certificate

Испитаниот сертификат.

purpose

openssl_x509_checkpurpose() purposes
Константа = NULL
X509_PURPOSE_SSL_CLIENT Дали сертификатот може да се користи за клиентската страна на SSL конекција?
X509_PURPOSE_SSL_SERVER Дали сертификатот може да се користи за серверската страна на SSL конекција?
X509_PURPOSE_NS_SSL_SERVER Дали сертификатот може да се користи за Netscape SSL сервер?
X509_PURPOSE_SMIME_SIGN Дали сертификатот може да се користи за потпишување на S/MIME е-пошта?
X509_PURPOSE_SMIME_ENCRYPT Дали сертификатот може да се користи за шифрирање на S/MIME е-пошта?
X509_PURPOSE_CRL_SIGN Дали сертификатот може да се користи за потпишување на листа за откажување на сертификати (CRL)?
X509_PURPOSE_ANY Дали сертификатот може да се користи за било какви/сите намени?
Овие опции не се битни полиња - можете да наведете само една!
ca_info

ca_info треба да биде низа од доверливи CA датотеки/директориуми како што е опишано во Проверка на сертификат.

untrusted_certificates_file

Ако е наведено, ова треба да биде името на PEM кодирана датотека што содржи сертификати што можат да се користат за да помогнат во верификацијата на сертификатот, иако нема доверба во сертификатите што доаѓаат од таа датотека.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true дали сертификатот може да се користи за наменетата цел, false ако не може, или -1 при грешка.

Дневник на промени

Верзија = NULL
8.0.0 certificate прифаќа OpenSSLCertificate инстанца сега; претходно, а resource од тип OpenSSL X.509 беше прифатено.
8.0.0 untrusted_certificates_file сега е null.

Белешки од корисници 2 забелешки

dingyuan на tencent точка com
пред 5 години
in one word :if you set $purpose=0, you can use this function to verify certificate chain.

====================================================================

I want to verify a certificate chain. just like this: 
userCert.pem => middleCert.pem => rootCert.pem

I figured that none of these openssl functions provide this function directly. And some friends have same need as me,  "mikey at badpenguins dot com" even write his own code to verify certificate chain(you can see notes below openssl_verify). 

and I notice a note which has '-3' likes below openssl_verify, it says "validating an X509 certificate chain in php seems to be possible with openssl_x509_checkpurpose()", and I read the source code about this function, the given constant var about $purpose (like X509_PURPOSE_SSL_CLIENT ) is 1-7, and if you set $purpose among 1-7, you cannot verify the cert chain. Set $purpose=0 can get the truly result about verify a cert chain.

and I give that '-3' note a thumb-up, now it has -2 , lol.
adr на NOSPAM точка entropymatrix точка com
12 години пред
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";
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.