2024 年 PHP 日本研討會

openssl_csr_export

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

openssl_csr_exportCSR 匯出為字串

說明

openssl_csr_export(OpenSSLCertificateSigningRequest|字串 $csr, 字串 &$output, 布林值 $no_text = true): 布林值

openssl_csr_export() 函式會將 csr 參數所表示的憑證簽署請求 (Certificate Signing Request),以 PEM 格式儲存到以傳址方式傳入的 output 參數中。

參數

csr

請參閱 CSR 參數 以取得有效值的列表。

output

成功時,此字串將包含 PEM 編碼的 CSR

no_text

選用參數 notext 會影響輸出的詳細程度;如果它是 false,則輸出中會包含額外的人類可讀資訊。 notext 的預設值為 true

返回值

成功時返回 true,失敗時返回 false

更新日誌

版本 說明
8.0.0 csr 現在接受 OpenSSLCertificateSigningRequest 實例;先前接受的是類型為 OpenSSL X.509 CSR資源

範例

範例 #1 openssl_csr_export() 範例

<?php
$subject
= array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo
$csr_string;
?>

參見

新增註釋

使用者貢獻的註釋 1 則註釋

3
carlos AT wfmh DOT org DOT pl
22 年前
以下是使用此函式的範例。

if( $csr = openssl_csr_new( array(
"countryName"=>"PL",
"stateOrProvinceName" => "blah",
"organizationName" => "company ltd",
"commonName"=>"foo.bar.com",
"Email"=>"blah@foo.bar.com"), $privkey )
)
{
openssl_csr_export_to_file( $csr, "out.csr");
}
else
{
printf("failed\n");
}

請記住,金鑰區分大小寫(例如,提供 "email" 而不是 "Email",您會收到警告)。另請記住,保持陣列中參數的順序非常重要。將「Email」移到 commonName 上方,並檢查您得到的結果(如果您不知道如何操作:「openssl req -noout -text -in out.csr」)。

我之前也遇到過順序亂七八糟時發生 segmentation fault 的情況(如果我沒記錯,Email 在 countryName 之後,或者到處都是 Email),所以請注意。
To Top