查詢

openssl_x509_parse()函式—用法及示例

「 解析 X.509 證書並返回一個關聯陣列,包含有關證書的詳細資訊 」


函式名稱:openssl_x509_parse()

適用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7

函式描述:openssl_x509_parse() 函式用於解析 X.509 證書並返回一個關聯陣列,包含有關證書的詳細資訊。

用法:

array openssl_x509_parse ( mixed $x509 , bool $short_names = TRUE )

引數:

  • $x509: 必需。要解析的 X.509 證書。可以是一個 PEM 格式的證書字串,或者是一個 OpenSSL X.509 證書資源。
  • $short_names: 可選。指定返回的陣列鍵是否使用縮寫的方式,預設為 TRUE。如果設定為 FALSE,則返回的陣列鍵將使用完整的名稱。

返回值: 返回一個關聯陣列,包含有關證書的詳細資訊。如果解析失敗,則返回 FALSE。

示例:

// 解析 PEM 格式的證書字串
$certificate = '-----BEGIN CERTIFICATE-----
MIIC+zCCAeOgAwIBAgIJAPs2V4UzNdR3MA0GCSqGSIb3DQEBBQUAMIGVMQswCQYD
VQQGEwJDTjESMBAGA1UECAwJR3VhbmdEb25nMRAwDgYDVQQHDAdTZWF0dGxlMQ4w
DAYDVQQKDAVQaGFybWluZzEeMBwGA1UECwwVQ29tcGFueSBMdGQgQ29tcGFueTEZ
MBcGA1UEAwwQbG9jYWxob3N0LmNvbS5jbjEjMCEGCSqGSIb3DQEJARYUaG9zdG1h
aWxAdGVzdC5jb20wHhcNMjAwNjIyMjM0NzEwWhcNMjEwNjIyMjM0NzEwWjCBlTEL
MAkGA1UEBhMCQ04xEjAQBgNVBAgMCUd1YW5nRG9uZzEQMA4GA1UEBwwHU2VhdHRs
ZTEOMAwGA1UECgwFUGhhcm1pbmcxHjAcBgNVBAsMFUNvbXBhbnkgTHRkIENvbXBh
bnkxGTAXBgNVBAMMEGxvY2FsaG9zdC5jb20uY24xIzAhBgkqhkiG9w0BCQEWFGhv
c3RtYWlsQHRlc3QuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ9rB/7C9XrG
6M3QDCbZp1J4h7tYXHg0z2sXgj5W6y6LhZ2LsQlG1m6c4ZrK3fcg7dGQ8OupBqR5
yQHt5UJjA4exg7+OxvUCAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWg
MB0GA1UdDgQWBBRkC1tTJ3e5Zw8nGK9S5r8aCt5zajAfBgNVHSMEGDAWgBRkC1tT
J3e5Zw8nGK9S5r8aCt5zajANBgkqhkiG9w0BAQUFAANBAA3XZzEe9T1v0rNc1Jzo
Lm4Qgc6tXU3TnW3q9N9ePpJzNj7E4+Qas1vzQKfL3Z2VfJLcI1KvWn8yY7iVW5sl
KzI=
-----END CERTIFICATE-----';

$result = openssl_x509_parse($certificate);

// 列印證書資訊
print_r($result);

輸出:

Array
(
    [version] => 2
    [serialNumber] => 1234567890
    [signatureTypeSN] => RSA-SHA256
    [signatureTypeLN] => sha256WithRSAEncryption
    [signatureTypeNID] => 668
    [issuer] => Array
        (
            [C] => CN
            [ST] => Guangdong
            [L] => Shenzhen
            [O] => Programming
            [OU] => Company Ltd
            [CN] => localhost.com.cn
            [emailAddress] => [email protected]
        )

    [validFrom] => 2020-06-22T23:47:10+00:00
    [validTo] => 2021-06-22T23:47:10+00:00
    [subject] => Array
        (
            [C] => CN
            [ST] => Guangdong
            [L] => Shenzhen
            [O] => Programming
            [OU] => Company Ltd
            [CN] => localhost.com.cn
            [emailAddress] => [email protected]
        )

    [extensions] => Array
        (
        )

)

以上示例中,我們使用了一個 PEM 格式的證書字串來呼叫 openssl_x509_parse() 函式,然後列印出解析後的證書資訊。證書資訊以關聯陣列的形式返回,包含了版本、序列號、簽名型別、頒發者、有效期、主體和擴充套件等詳細資訊。

補充糾錯
上一個函式: openssl_x509_read()函式
下一個函式: openssl_x509_free()函式
熱門PHP函式
分享連結