GmSSL的PHP语言绑定
GmSSL项目通过PHP的扩展的方式为PHP语言提供国密算法的支持,应用通过openssl
为前缀的函数实现国密算法和标准相关的杂凑计算、加密、数字签名、X.509证书、数字信封、SSL通信等功能。
编译与安装
GmSSL的PHP扩展代码位于源代码中的的php/ext/openssl
目录,PHP扩展需要和PHP源代码目录树一起编译,过程如下:
- 下载并编译安装GmSSL;
- 下载最新的PHP源代码并解压;
- 用GmSSL的
php/ext/openssl
目录替代PHP源代码中的ext/openssl
目录; - 执行
./configure --with-openssl; make; sudo make install
编译和安装PHP; - 修改PHP配置文件
php.ini
启用openssl扩展,即取消php.ini
中extension=openssl
前面的注释。 - 可以通过PHP的
phpinfo()
函数确认openssl扩展已经启用,通过ldd
命令检查PHP的二进制程序调用了GmSSL的动态库而不是系统默认的OpenSSL动态库。
首先下载并编译安装GmSSL-2.0代码,在Linux操作系统中通常默认的编译选项为—prefix=/usr/local
和—openssldir=/usr/local/ssl
。然后从源代码编译PHP。PHP的默认配置不编译OpenSSL扩展,需要显式指定—with-openssl
才会编译OpenSSL扩展。可以通过ldd
检查安装好的php
可执行程序是否链接了预期的库。
示例
显示扩展的GmSSL库版本号
常量OPENSSL_VERSION_TEXT
是GmSSL版本号的字符串,可以通过这个版本字符串判断当前系统的openssl扩展是否为GmSSL版。