函式名稱: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() 函式,然後列印出解析後的證書資訊。證書資訊以關聯陣列的形式返回,包含了版本、序列號、簽名型別、頒發者、有效期、主體和擴充套件等詳細資訊。