<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.openssl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'openssl.certparams.php',
    1 => '密钥/证书参数',
    2 => '密钥/证书参数',
  ),
  'up' => 
  array (
    0 => 'book.openssl.php',
    1 => 'OpenSSL',
  ),
  'prev' => 
  array (
    0 => 'openssl.constants.other.php',
    1 => '其它常量',
  ),
  'next' => 
  array (
    0 => 'openssl.cert.verification.php',
    1 => '证书验证',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/openssl/certparams.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="openssl.certparams" class="appendix">
 <h1 class="title">密钥/证书参数</h1>

 <p class="para">
  相当一部分的 openssl 函数需要密钥或者证书参数。可通过以下途径获取这些参数。
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     证书
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        从 <span class="function"><a href="function.openssl-x509-read.php" class="function">openssl_x509_read()</a></span> 返回的 <span class="classname"><a href="class.opensslcertificate.php" class="classname">OpenSSLCertificate</a></span>
        实例（在 PHP 8.0.0 之前为类型 <code class="literal">OpenSSL X.509</code> 的 <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>）
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">如下格式的字符串 <var class="filename">file://path/to/cert.pem</var>；命名文件必须包含一个 <abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码的证书
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        包含了证书内容的字符串，<abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码，应该以 <code class="literal">-----BEGIN CERTIFICATE-----</code> 开头。
       </span>
      </li>
     </ol>
    </p>
   </li>

   <li class="listitem">
    <p class="para">
     证书签名请求 (CSRs)
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        从 <span class="function"><a href="function.openssl-csr-new.php" class="function">openssl_csr_new()</a></span> 返回的 <span class="classname"><a href="class.opensslcertificatesigningrequest.php" class="classname">OpenSSLCertificateSigningRequest</a></span>
        实例（在 PHP 8.0.0 之前为类型 <code class="literal">OpenSSL X.509 CSR</code> 的 <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>）
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">如下格式的字符串 <var class="filename">file://path/to/csr.pem</var>；命名文件必须包含 <abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码的 <abbr title="Certificate Signing Request">CSR</abbr>
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        包含 <abbr title="Certificate Signing Request">CSR</abbr> 内容的字符串，<abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码，应该以 <code class="literal">-----BEGIN CERTIFICATE REQUEST-----</code> 开头。
       </span>
      </li>
     </ol>
    </p>
   </li>

   
   <li class="listitem">
    <p class="para">
     公钥/私钥 Key
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        从 <span class="function"><a href="function.openssl-get-publickey.php" class="function">openssl_get_publickey()</a></span> 或 <span class="function"><a href="function.openssl-get-privatekey.php" class="function">openssl_get_privatekey()</a></span> 返回的
        <span class="classname"><a href="class.opensslasymmetrickey.php" class="classname">OpenSSLAsymmetricKey</a></span> 实例（在 PHP 8.0.0 之前为类型 <code class="literal">OpenSSL key</code> 的 <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>）
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        仅限公钥：<span class="classname"><a href="class.opensslcertificate.php" class="classname">OpenSSLCertificate</a></span> 实例（或在 PHP 8.0.0 之前，<code class="literal">OpenSSL X.509</code> 类型的 <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>）
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">如下格式的字符串
        <var class="filename">file://path/to/file.pem</var> - 命名文件必须包含 <abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码的证书/私钥（必须包含二者）
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        包含证书/私钥内容的字符串，<abbr title="Privacy-Enhanced Mail">PEM</abbr> 编码，应该以 <code class="literal">-----BEGIN PUBLIC KEY-----</code> 开头。
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        对于私钥，应该使用<code class="literal">array($key, $passphrase)</code> 的语法格式，这里的 <var class="varname">$key</var> 代表由file://格式的文件或者文本字符表示的密钥, 而
        <var class="varname">$passphrase</var> 表示一个包含该私钥的密码的字符串。
       </span>
      </li>
     </ol>
    </p> 
   </li>
  </ul>
 </p>
</div>
<?php manual_footer($setup); ?>