我有错误
error:2006D002:BIO routines:BIO_new_file:system lib
调用openssl_csr_new
函数时。
$pKey = openssl_pkey_new( $keyConfig );
$pCSR = openssl_csr_new( $sslConfig, $pKey );
没有openssl.cnf
这在第一个功能上失败。
我尝试了最低openssl.cnf
和实际配置,但没有效果。如果我使用错误的openssl.cnf
错误将是:
error:0E064002:configuration file routines:CONF_load:system lib
请您帮忙解决正确的最低openssl.cnf
或我需要修复的问题吗?
答案 0 :(得分:1)
解决了,我需要为OpenSSL函数指定$ keyConfig:
$keyConfig = array(
'config' => dirname($_SERVER['SCRIPT_FILENAME']) . '/store/openssl.cnf',
...
);
$sslConfig = array(
"countryName" => 'XX',
"stateOrProvinceName" => 'XX',
"localityName" => 'XX',
...
);
$pKey = openssl_pkey_new( $keyConfig );
$pCSR = openssl_csr_new( $sslConfig, $pKey , $keyConfig );
$pCRT = openssl_csr_sign( $pCSR , null , $pKey , self::TIME_INTERVAL_WEEK , $keyConfig );
openssl_x509_export( $pCRT, $strCertificate );
openssl_pkey_export( $pKey, $strPrivateKey , null , $keyConfig );