所以我试图让openssl在我的Windows安装xampp(1.7.3)上工作,这是用OpenSSL 0.9.8l构建的.这是我第二次在*amp安装上安装openssl但是第一次游泳(这是在同一台机器上的wamp安装,但我发现xampp更像是我的风格所以我切换了).
当我尝试一个简单的设置脚本时:
var_dump(getenv('OPENSSL_CONF'));
$privateKey = openssl_pkey_new();
while($message = openssl_error_string()){
echo $message.'<br />'.PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)
我收到了一条返回的消息:
error:02001003:system library:fopen:No such process
error:2006D080:BIO routines:BIO_new_file:no such file
error:0E064002:configuration file routines:CONF_load:system lib
Run Code Online (Sandbox Code Playgroud)
我读了php.net页面,告诉我需要设置openssl.cnf和ssleay.dll环境常量的可能性,我试过但没有改变.
一var_dump中OPENSSL_CONF导致的路径:C:/xampp/apache/bin/openssl.cnf这是我的机器是正确的.
我检查了php目录的路径(ssleay32.dll和libeay32.dll所在的位置)是在我的路径系统var中定义的,但它不是,所以我定义了它,重新启动了我的机器,并在此过程中重新启动了apache,但错误消息没有变化.
我的xampp版本没有附带php_openssl.dll,因此我相信php.ini文档应该将它从可用的.dll列表中排除,就像我检查时一样.我相信xampp会编译一个基于zend的扩展.
我能够从xampp gui启动openssl,并且我成功地创建了一个私钥/公钥对.
phpinfo()报道:
openssl OpenSSL支持启用
OpenSSL库版本OpenSSL
0.9.8l 2009年11月5日OpenSSL头版本OpenSSL 0.9.8l 2009年11月5日
我在我的系统目录中假设的wamp安装中有一个旧的ssleay.dll和libeay32.dll但是我已经将它们删除了.(重启后重启apache)
我试着将openssl.cnf复制到默认目录'C:\ usr\local\ssl\openssl.cnf'没有变化.
我也阅读了这个帖子和这个帖子,但给出的答案是相关的,但没有帮助或不存在.
任何人对我接下来要检查的内容或任何我错过的明显内容都有任何想法?
我正在尝试在php中构建一个应用程序,我有一个我正在部署的加密/解密方法,为了增强安全性,我将这两个方法声明为受保护,我计划让任何需要它们的类继承它们.这有什么缺点吗?恶意用户也可以利用它们被声明受保护的事实吗?