代码

openssl_x509_check_private_key($pems,$key) //返回布尔值
$pem = openssl_x509_parse($pems)           //获取证书后返回详细信息数组**

public function ceshi(){
    if(request()->isPost()){
        $pems = input('post.pems');//证书
        $key = input('post.key');//秘钥
        //验证证书和秘钥是否匹配
    if(openssl_x509_check_private_key($pems,$key)){
        $pem = openssl_x509_parse($pems);
        if($pem['validTo_time_t']-$pem['validFrom_time_t']>
            $status = 1; //正常
        }else{
        $status = 2; //到期
    }
    $data = array(
        'uid' => $this->userinfo['numid'],
        'sign' => $this->Rent->getStr(),//ssl证书唯一标识
        'number' => $pem['serialNumberHex'],//序列号
        'cert' => $pems,//证书
        'private_key' => $key,//私钥
        'issue' => $pem'issuer',//颁发者
        'issue_organization' => $pem'issuer',//颁发组织
        'issue_organization_unit' => '',//颁发组织单元
        'starttime' => $pem['validFrom_time_t'],//生效时间
        'endtime' => $pem['validTo_time_t'],//结束时间
        'commonname' => $pem'subject',//证书颁发对象(CSR中的域名)
        'use_organization' => '',//使用组织
        'use_organization_unit' => '',//使用组织单元
        'city' => '',//所在城市
        'province' => '',//所在省份
        'country' => '',//所在国家
        'dn' => $pem'extensions',//可用域名
        'posttime' => time(),
        'status' => $status,//状态 1-正常,2-到期
    );
    return json($data);
    }
}
最后修改:2020 年 11 月 11 日
如果觉得我的文章对你有用,请随意赞赏