我自己已解决,这里分一下经验。
如果想要服务器在PHP上 同时支持国际和国密全套算法,有几个硬指标一定要满足:
1、openssl 版本一定要 大于等于 3.1 版。推荐 debian 13.6 以上版本,自带 openssl 3.5.7 版。
2、PHP版本 一定要 8.3 以上。经过实践,推荐 PHP 8.5 ,8.3和8.4对于国密算法支持不全面。
3、PHP 8.5 一定要安装 ext-gmsm、gmp 扩展,这是国密算法专用扩展。其中 ext-gmsm 扩展在宝塔PHP扩展库里面是找不到的,一定要额外安装。自己不会安装的,推荐用AI agent 直接操作服务器帮你安装。
4、一个坑:SM2 密钥交换 目前没有底层和扩展能原生支持,只能使用 纯PHP 代码方式实现。
同时满足以上1、2、3三条件,就能让服务器从底层原生支持国际、国密全套算法,底层是用C实现的,性能足够强。只有SM2密钥交换 没有原生支持,用 纯PHP 代码实现,性能弱与C底层的扩展 几十倍到几百倍。 |