【问题标题】:PHP openssl_x509_parse doesn't return data for CSRPHP openssl_x509_parse 不返回 CSR 数据
【发布时间】:2015-12-24 20:11:04
【问题描述】:

我使用以下命令生成 CSR:

openssl req -nodes -newkey rsa:2048 -keyout mytestserver.key -out mytestserver.csr

我尝试使用以下 PHP 代码解码 mytestserver.csr:

<?php

$mydata="-----BEGIN CERTIFICATE REQUEST-----
MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSDEQMA4GA1UE
BxMHQ29uY29yZDESMBAGA1UEChMJTXljb21wYW55MQswCQYDVQQLEwJJVDETMBEG
A1UEAxMKbXl0ZXN0LmNvbTEeMBwGCSqGSIb3DQEJARYPdGVzdGVyQHRlc3QuY29t
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3CcljODQKIJQ9xnPFydW
E6fRphmfxtDZF46/J6jT7ctzG3Mv//8p9ene60BCDIWdWiDXvUUUc02nb/qiiaP5
lALl6XeLKOKs6ZEC/lknDfgOBSjqvLz+UzlOXjRdhBpaawaEbVw4rh6idHWIOFGT
lzuHmE8YBmJ7R+tfhmEETk5XtPRZ3RL173HH2R/f2YCh0uhMr4GqXVfHtWrkpiw7
gXjvaXFeQhslTSP7Pru8j39uYKqubwLTyJ1uoqHVVOIqmswz+WfSvn+c86VK44p0
oQQnFL1gHoUWBHSbTmU49ufOWog9oLHOo9GUnMRg9TntGL0s55rfmSTZ+qtyB8Lc
7wIDAQABoAAwDQYJKoZIhvcNAQEEBQADggEBALglJeJUBEmxTy1hE0jG4cPAaJe5
FOqaVCUDm4YeoTpLfYLgE7ZkWuqkhZdw4TR9wu4DkiYo9z94avrKzFj2Kq1JHjUX
weYAHzGxtFO2IUuz7DSGfSvfJ0mMkAH+QtaxNUV2olnrdA8T5hRzgbZT2RTCc0GV
iSyCKXj4O/yRt0lbBCdM/Lja3Yga2BrFtvcsqnaDO6kIj+x1YCpL3cpRsm+3XbvH
dE02+hB/iHC0bE4lQciPCASOiXbMWASWxofFjyRCP+Ha+np/FqoxRF6DIUu10dCS
wV2kkbQQhNsFuMzCJvYudsmG1ULUfjUTvCAgO9kdBweNg3nklzetoSWoE5k=
-----END CERTIFICATE REQUEST-----";

print ("\r\n begin");
print_r(openssl_x509_parse($mydata));

print ("\r\n end");

但它给出了一个空的结果。

知道如何使用 PHP 的 OpenSSL 库来解码我生成的 RSA CSR 吗?

【问题讨论】:

  • 在调试时,使用 var_dump() ,而不是 print_r() ,另外,确保你使用的是 error_reporting(E_ALL);
  • hanshenrik,感谢您的建议。

标签: php openssl csr


【解决方案1】:

openssl_x509_parse() 用于“解析 X509 证书”。要解析证书签名请求,您可以使用openssl_csr_get_subject() 和openssl_csr_get_public_key()。

要检索公钥详细信息,您可以使用openssl_pkey_get_details():

$keyres = openssl_csr_get_public_key($mydata);
$key = openssl_pkey_get_details($keyres);
echo "$key[bits] bit public key follows:\n$key[key]\n";

【讨论】:

  • miken32,非常感谢您的建议。实际上,我尝试从输入 CSR 生成 O、OU、UN、emailAddress 值。我根据你给我的提示想出了我可以使用的函数:openssl_csr_get_subject($mydata) 可以生成我需要的值数组。再次感谢。
猜你喜欢
  • 2012-02-06
  • 2011-07-19
  • 1970-01-01
  • 2014-10-22
  • 2017-05-07
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多