我需要在我的php项目中使用openssl,所以我使用openssl创建了一个测试php页面。但是,我一直在犯这些错误,我不知道为什么。OpenSSL已启用。
警告:openssl_pkey_export()[function.openssl-pkey-export]:cannot get key from parameter 1 in C:\wamp\www\opensslsample\index.php on line 18
Copyright © 2018 - 2019 www.pk10.com版权所有
<?php
//echo phpinfo();
$privateKey = openssl_pkey_new(array(
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($privateKey, $privkey,"123");
$pubkey=openssl_pkey_get_details($privateKey);
$pubkey=$pubkey["key"];
?>
6条答案
按热度按时间a8jjtwal1#
如果你在Windows上,这可能会有所帮助:
1.点击开始按钮
1.点击控制面板
1.点击系统和安全
1.单击系统
1.点击高级系统设置
1.单击环境变量
1.在“系统变量”下点击“新建”
1.输入“变量名”OPENSSL_CONF
1.输入“变量值”。
Wamp
-C:\wamp\bin\apache\Apache2.2.17\conf\openssl.cnf
Xampp
-C:\xampp\apache\conf\openssl.cnf
1.点击“确定”并关闭所有窗口并重新启动计算机。
OPENSSL应该可以正常工作。
juzqafwq2#
检查
openssl_error_string
。我的猜测是你的openssl.cnf文件丢失或什么的。或者,您可以使用phpseclib, a pure PHP RSA implementation来生成密钥。eg.
oo7oh9g93#
我从phpseclib中提取来修复它在jose-jwt lib中,它工作了,你需要这几个变化:
这个极简配置文件:
名称:
openssl.cnf
有了这一切,它应该工作得很好。okxuctiv4#
PHP需要找到你的openssl.cnf。最好的方法是在PATH环境变量中添加它的目录位置。
falq053o5#
您可以使用ParagonIE\EasyRSA\KeyPair来解决此问题。看看https://github.com/paragonie/EasyRSA。
x6h2sr286#
在Windows中,您可以按照以下步骤解决openssl问题:
1.右击“我的电脑”图标
1.点击“属性”
1.点击“高级系统设置”
1.点击“环境变量”
1.在“系统变量”下点击“新建”
1.输入变量名称:OPENSSL_CONF”和变量值(xampp服务器):“D:\xampp\apache\conf\openssl.cnf”和(wamp服务器):“D:\wamp\bin\apache\Apache2.2.17\conf\openssl.cnf”
1.点击“确定”并关闭所有窗口并重新启动计算机。
OPENSSL应该可以工作。