PHP openssl_pkcs12_read“错误:0308010C:数字信封例程::不支持”

2024-01-06

我收到错误Error message "error:0308010C:digital envelope routines::unsupported"当尝试打开一个.pfx file:

$result = openssl_pkcs12_read($content, $certdata, $pass);
$error = openssl_error_string(); // "error:0308010C:digital envelope routines::unsupported"

在终端(Ubuntu 22.04)中:

user@user-tp:~$ php -i | grep -i openssl
SSL Version => OpenSSL/3.0.2
libSSH Version => libssh/0.9.6/openssl/zlib
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 3.0.2 15 Mar 2022
OpenSSL Header Version => OpenSSL 3.0.2 15 Mar 2022
Openssl default config => /usr/lib/ssl/openssl.cnf
openssl.cafile => no value => no value
openssl.capath => no value => no value
Native OpenSSL support => enabled

如果我尝试在终端中打开文件,则会出现相同的错误:

openssl pkcs12 -in file.pfx -nodes

但如果我使用-legacy参数它工作正常。

如何在 PHP 中使用它而不出现错误?


您可以启用 Openssl 3 的旧版选项:

查找并打开该文件/etc/ssl/openssl.cnf

At the [default_sect]部分将其更改为以下内容:

[default_sect]
activate = 1
[legacy_sect]
activate = 1

然后找到[provider_sect]并将其更改为以下内容:

[provider_sect]
default = default_sect
legacy = legacy_sect

之后保存文件并重新启动 PHP 应用程序,它应该可以正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP openssl_pkcs12_read“错误:0308010C:数字信封例程::不支持” 的相关文章

随机推荐

  • 如何在Python中使用OpenSSL从pfx文件中提取密钥?

    我需要签署一份xml与certificate and key from a pfx file 换句话说 我有一个 pfx 文件 我需要从其中提取pem an key签署我的xml 我发现这个脚本可以从 pfx 中提取笔和密钥 但出现错误 i
  • 任意多边形的宽度

    我需要一种方法来表征二维点集的大小 这样我就可以根据视口的比例来确定是否将它们渲染为空间中的单个点或代表性多边形 我已经有一个算法来计算该集合的凸包以生成代表性多边形 但我需要一种方法来表征其大小 一个明显的衡量标准是凸包上点之间的最大距离
  • 子类化 beautifulsoup html 解析器,出现类型错误

    我使用 beautifulsoup 很棒的 html 解析器编写了一个小包装器 最近 我尝试改进代码并使所有 beautifulsoup 方法直接在包装类中可用 而不是通过类属性 我认为子类化 beautifulsoup 解析器将是实现此目
  • 使用 CoreGraphics 在视网膜显示屏上绘图 - 图像像素化

    在我的 iOS 应用程序中 我尝试使用 CoreGraphics 绘制曲线 绘图本身工作正常 但在视网膜显示器上 图像是使用相同的分辨率绘制的 并且像素不会加倍 结果是像素化图像 我正在使用以下函数进行绘图 void touchesMove
  • 如何全局更改Android首选项图标颜色

    我已经为我的所有首选项设置了平面图标 我想全局更改该图标的颜色 当我尝试下面的代码时 它甚至改变了工具栏中的后退按钮颜色 我只想全局更改首选项图标色调 预先感谢
  • C++ 抽象类不能有带有该类参数的方法

    我创建了这个 h 文件 pragma once namespace Core class IComparableObject public virtual int CompareTo IComparableObject obj 0 但编译器
  • django.core.exceptions.ImproperlyConfigured:无法使用视图名称“用户详细信息”解析超链接关系的 URL

    TL DR 我收到此错误 但不知道原因 django core exceptions ImproperlyConfigured 无法使用视图名称 user detail 解析超链接关系的 URL 您可能未能在 API 中包含相关模型 或者错
  • 关闭移动 Safari 中的表单助手?

    当在触摸屏设备上运行时 在我的情况下是iPhone 但我认为它在其他设备上也会这样做 当弹出表单字段的虚拟键盘时 键盘顶部会添加导航按钮 上一个 下一步 完成 有时是 自动填充 这显然是Mobile Safari 的 表单助手 我觉得这是多
  • 哪些客户端内缓存选项适合 Cassandra 和 Java?

    我目前正在构建一个必须能够处理每秒数万次写入的系统 我或多或少决定使用 Apache Cassandra 作为持久层 并将使用 Java 作为应用程序层 但在某些情况下 我需要以在几秒钟内获取任何更改的方式快速访问数据 每次我需要检查这些数
  • 使用 add() 方法添加片段不会隐藏以前的片段

    使用 add 方法添加新片段时 我遇到 意外行为 我想在 FrameLayout 上添加一个新片段 但是当我这样做时 前一个片段仍然可见 这是使用 add 方法时的预期结果吗 是因为我使用的是 FrameLayout 并且 add 方法只是
  • 当 MasterPage 位于根文件夹中时在子文件夹中使用 JQuery

    我试图在 ASP NET 中名为 samples 的子文件夹中使用 jquery 库 其中母版页位于根目录中 目前 对 jquery 脚本的引用位于母版页的 head 标签中 如果我创建的页面也在根目录中 则一切正常 如果我将页面移动到 s
  • C++中为什么派生类的构造函数要初始化虚拟基类?

    我的理解 比如阅读this https www cprogramming com tutorial virtual inheritance html是派生类的构造函数不调用其虚拟基类的构造函数 这是我做的一个简单的例子 class A pr
  • Firebase:更改 Service Worker 的位置

    我正在尝试使用 Firebase 消息传递 网络 Firebase 默认情况下会搜索保存 Service Worker 的文件 firebase messaging sw js Service Worker 脚本应该位于应用程序的绝对路径上
  • 使用 Teradata ODBC 与 Teradata 数据库的 SAS 连接

    我正在尝试连接到 SAS 中的 Teradata 我在机器上设置了 Teradata ODBC 目前我的假设是使用 ODBC 是我访问数据库的唯一方法 这是我的连接命令的语法 库名称 Teradata ODBC dsn dsnname ui
  • python struct.error: 'i' 格式需要 -2147483648 <= number <= 2147483647

    Problem 我愿意使用多处理模块进行特征工程 multiprocessing Pool starmap 但是 它给出了如下错误消息 我猜这个错误消息与输入的大小有关 2147483647 2 31 1 因为相同的代码对于一小部分来说可以
  • 确定 Java 应用程序是否正在通过 RDP 会话运行?

    如何检测我的 Swing 应用程序是否正在从 Windows RDP 会话运行 仅使用 Java 的解决方案是首选 但该应用程序保证可以在 Windows 上运行 所以我可以接受 我认为您必须调用本机 Windows 库才能实现此目的 尝试
  • STL std::map 动态排序

    我知道这可能是一个愚蠢的问题 但我仍然有一个困惑 W r t std map 我已经为地图的动态排序编写了一个自定义谓词 enum OrderingType ASCENDING DESCENDING template
  • Liquid 中按索引为数组赋值

    我处于一个有点复杂的循环中 我需要通过索引为数组分配一个值 这样如果该值已经存在 它将替换它 如果不存在 它将创建它 所以我需要做这样的事情 assign arr split assign arr index value 这不起作用 数组仍
  • 如何找到空闲的 UDP 端口对?

    RTP 规范规定 给定 RTP 流的 RTCP 数据包将在主 RTP 端口 1 的端口上发送 例如 如果视频到达 RTP 端口 9010 那么在端口 9011 上 您可以期待 RTCP 数据包 当我协商单播流 通过 RTSP 协议 时 我必
  • PHP openssl_pkcs12_read“错误:0308010C:数字信封例程::不支持”

    我收到错误Error message error 0308010C digital envelope routines unsupported 当尝试打开一个 pfx file result openssl pkcs12 read cont