我收到错误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(使用前将#替换为@)