window環境下使用PHP OpenSSL擴展函數返回false的緣由(openssl_pkey_new)php
使用的開發環境是PHPstudy ,在使用OpenSSL的函數openssl_pkey_new()時,始終返回false,檢查了環境,OpenSSL擴展已經開啓,代碼以下:apache
$config = array( 'private_key_bits' => 2048, ); $res = openssl_pkey_new($config);
$res返回false的時候,檢查發現,是window系統缺乏了openssl環境變量,解決方法以下:函數
$opensslConfigPath = "D:/phpStudy/Apache/conf/openssl.cnf"; //apache路徑下的openssl.conf文件路徑 $config = array( 'private_key_bits' => 2048, ); $res = openssl_pkey_new($config); if(!$res) { $config['config'] = $opensslConfigPath; $res = openssl_pkey_new($config); }
修改以後運行,返回正常。spa
PHP openssl_pkey_export 沒法生成私鑰,求助!
$res = openssl_pkey_new($configargs);因爲這一步傳入了$configargs參數,因此
openssl_pkey_export($res, $privkey); 這一步也須要傳入這個參數,
即,獲取private key須要經過下面的方法獲得:
openssl_pkey_export($res, $privkey, null, $configargs);code