PHP openssl_x509_checkpurpose OpenSSL 函数

  • 定义和用法

    openssl_x509_checkpurpose - 验证是否可以为特定目的使用证书
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    openssl_x509_checkpurpose( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )
    openssl_x509_checkpurpose() 检查证书以查看它是否可用于指定目的 purpose.
  • 参数

    参数 必需的 描述
    x509cert 被检查的证书。
    purpose
    • 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 证书是否可以用于任何目的?
    这些选项不是位字段——您只能指定一个字段!
    cainfo cainfo 应该是一个受信任的 CA 文件/文件夹组成的数组,如 证书验证 所描述的一样。
    untrustedfile 如果指定,这应该是PEM编码文件的名称,该文件持有证书,可以用来帮助验证证书,尽管从该文件中获得的证书不受信任。
  • 返回值

    如果证书可以用于预期目的,返回 TRUE,如果不行,则返回 FALSE 错误便会返回 -1。
  • 示例

    $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";
    }
    
  • 相关页面

    openssl_sign() - 生成签名。