首页 >后端开发 >php教程 > openssl函数在https停无法使用

openssl函数在https停无法使用

WBOY
WBOY原创
2016-06-13 12:47:43845浏览

openssl函数在https下无法使用
问题:Linux+apache2+php5的环境下,配置ssl使https可以访问,然后执行测试代码:

<br />
<?php<br />
#ssl-encry.php<br />
$source = "This is encry-content.";<br />
echo "1.Source: $source";<br />
$fp=fopen("/path/to/certificate.crt","r");<br />
$pub_key=fread($fp,8192);<br />
fclose($fp);<br />
openssl_get_publickey($pub_key);<br />
openssl_public_encrypt($source,$crypttext,$pub_key);<br />
echo "2.String crypted: $crypttext";<br />
<br />
$fp=fopen("/path/to/private.key","r");<br />
$priv_key=fread($fp,8192);<br />
fclose($fp);<br />
// $passphrase is required if your key is encoded (suggested)<br />
$passphrase = '';<br />
$res = openssl_get_privatekey($priv_key,$passphrase);<br />
openssl_private_decrypt($crypttext,$newsource,$res);<br />
echo "3.String decrypt : $newsource";<br />
?> <br />
<br />

运行后,页面提示无法连接服务器。
经测试,问题在于openssl_public_encrypt()函数无法执行。
openssl_get_publickey()函数正常通过,但是openssl_public_encrypt()函数却使apache崩掉。

直接后台执行:/path/php -f ssl-encry.php ,只有1、2有结果,第3处空。
Windows环境下测试正常输出。

此种情如何解决?

openssl Apache PHP https
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn