You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Monterey下PHP7.3调用openssl_pkcs12_read报不支持错误如何修复?

解决MacOS Monterey下PHP7.3调用openssl_pkcs12_read()报错问题

遇到的error:0308010C:digital envelope routines::unsupported错误,本质是MacOS Monterey自带的OpenSSL版本禁用了部分旧加密算法,和你的PKCS12文件或PHP的OpenSSL适配冲突,试试下面的解决办法:

方法一:临时启用OpenSSL兼容模式

通过设置环境变量让PHP跳过系统默认的加密限制,直接在终端运行脚本前执行:

export OPENSSL_CONF=/dev/null && php your_script.php

如果是Web环境:

  • Apache:在httpd.conf或虚拟主机配置里添加SetEnv OPENSSL_CONF /dev/null
  • Nginx:在fastcgi_params中新增fastcgi_param OPENSSL_CONF /dev/null;

方法二:重新编译PHP7.3适配旧版OpenSSL

系统自带的OpenSSL版本较新,和PHP7.3兼容性不佳,可手动编译PHP并指定旧版OpenSSL:

  1. 用Homebrew安装OpenSSL 1.1.x:
    brew install openssl@1.1
    
  2. 下载PHP7.3源码,编译时指定OpenSSL路径:
    ./configure --prefix=/usr/local/php73 --with-openssl=/usr/local/opt/openssl@1.1
    make && make install
    
  3. 修改系统默认PHP指向这个编译好的版本(比如调整PATH或创建软链接)。

方法三:转换PKCS12文件的加密算法

如果能修改PKCS12文件,将其转换为使用现代加密算法的版本,即可兼容系统OpenSSL:

# 先把旧PKCS12导出为PEM格式
openssl pkcs12 -in old.p12 -out temp.pem
# 重新生成使用AES-256-CBC加密、SHA256哈希的PKCS12文件
openssl pkcs12 -export -in temp.pem -out new.p12 -certpbe AES-256-CBC -keypbe AES-256-CBC -macalg SHA256

之后用新生成的new.p12替换旧文件即可。

内容的提问来源于stack exchange,提问作者Damjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:32:11