| 介绍 这个模块用OpenSSL函数为了产生和验证签名和加密解密数据。PHP的OpenSSL现在不支持OpenSSL的一些特征, 在未来可能被增加。
需求 为了用OpenSSL函数,你需要安装OpenSSL包。 PHP-4.0.4 pl1 需要OpenSSL>=0.9.6, 但是 PHP-4.0.5需要 OpenSSL>=0.9.5。 在PHP中用OpenSSL你必须编译PHP --with-openssl[=DIR]。 Win32用户:为了在windoes环境中能用OpenSSL模块,你必须从PHP/Win32二进制包的DLL文件夹中复制libeay32.dll文件到windoes系统中的SYSTEM32文件夹中。 另外,如果你计划用‘钥匙’和‘证书签名’函数,你需要在你的系统上安装有效的openssl.cnf。从PHP4.3.0起,Win32二进制分发在openssl文件夹中已经包括了一个openssl.cnf样本配置文件。如果你用PHP4.2.0或更迟的版本或这个文件不存在,你能从OpenSSL主页获得它或更新PHP到PHP4.3.0版本以上。
Win32用户: PHP 将寻找 openssl.cnf 使用下列各项逻辑: ●如果设置OPENSSL_CONF 环境变量,将使用与配置文件一样的路径 ( 包括 filename) 。 ●如果设置SSLEAY_CONF 环境变量,将使用与配置文件一样的路径 ( 包括 filename) 。 ●文件 openssl.cnf 将假设在默认证书区域中被发现,当编译openssl DLL的时候被配置。通常默认的文件名是 c:\ usr\local\ssl\openssl.cnf 。 在你安装中,你决定是否在 c:\ usr\local\ssl\openssl.cnf中或是在其它地方安装配置文件和使用环境变量 ( 或者在每个虚拟主机上)定位配置文件。 注意:如果在脚本中用函数临时配置路径,那么它将可能忽略默认的安装配置路径。
资源类型
钥匙/证书 参数 相当多的 openssl 函数需要一个钥匙或一个证书参数。PHP 4.0.5和更早的版本必须使用openssl_get_xxx函数返回一个钥匙或证书资源。以后版本可使用下列方法之一:
●证书
1、从openssl_x509_read()函数返回一个 X.509 资源;
2、字符串满足这格式 file://path/to/cert.pem; 那个指定的文件必须是一个PEM格式编码的证书;
3、字符串包含PEM编码的证书内容。
●公众/私人 钥匙
1、从openssl_get_publickey()函数或openssl_get_privatekey()函数返回一个钥匙资源;
2、一个 X.509资源,仅仅为了公众钥匙;
3、满足这格式的字符串 file://path/to/file.pem - 指定的文件必须包含一个PEM编码的证书/私人钥匙 (它可能包含两者);
4、字符串包含一个PEM编码的证书/钥匙内容;
5、为了私人钥匙,你可能需要用这语法array($key, $passphrase),那个$key代表一个用file://或上面4所述的原文内容符号钥匙,$passphrase代表这个passphrase字符串内容为了私人钥匙。
证书确认
当调用一个函数的时候将核实一个签字/证书,cainfo参数是一个包含文件的数组和目录名,指定受信任的CA文件的位置。如果一个目录被指定,那么它必须是一个能被openssl 指令使用的正确形成的目录。 |