我试图让php报告证书的公钥长度作为位的表示。
e.g。 1024,2048,4096等。
我已经在PHP文档中搜索了无数函数来寻找答案或指导正确的方向。不能为我的生活找到一个能提供这些数据的功能。
http://php.net/manual/en/ref.openssl.php
openssl_pkey_get_details()似乎是要走的路。但是无法找到一种方法,首先给它一个公钥。
目前我可以解析证书。但是,这不包括公钥或位信息。
<?php
$cert = $_POST['cert_text'];
$ssl = openssl_x509_parse($cert);
echo json_encode($ssl);
?>
上面的$ cert变量是PEM格式的证书文件。所以格式为
-----BEGIN CERTIFICATE-----
MIIGWTCCBUGgAwIBAgIKG6SqTwACAAAANzANBgkqhkiG.....etc..
-----END CERTIFICATE-----
答案 0 :(得分:1)
使用
array openssl_pkey_get_details ( resource $key )
返回一个数组,其中关键详细信息成功,否则返回FALSE。返回的数组具有索引位(位数),密钥(公钥的字符串表示)和类型(密钥的类型,其中一个是OPENSSL_KEYTYPE_RSA,OPENSSL_KEYTYPE_DSA,OPENSSL_KEYTYPE_DH,OPENSSL_KEYTYPE_EC或-1表示未知)。