如何解决PHP使用OpenSSL生成CSR时的BIO文件不存在错误
解决PHP OpenSSL生成CSR时的BIO_new_file错误
这个错误是因为PHP的OpenSSL扩展找不到默认的配置文件(openssl.cnf),Laragon环境下需要手动指定这个文件的路径,有两种解决方式:
方式一:在代码中指定配置文件路径
找到你Laragon中PHP目录下的openssl.cnf文件,一般路径是Laragon\bin\php\{你的PHP版本号}\extras\ssl\openssl.cnf(比如PHP 8.2的路径可能是C:/laragon/bin/php/php-8.2.10-Win32-vs16-x64/extras/ssl/openssl.cnf),然后修改openssl_pkey_new的参数,添加config项:
// 修改后的密钥生成代码 $privkey = openssl_pkey_new(array( "private_key_bits" => 2048, "private_key_type" => OPENSSL_KEYTYPE_RSA, "config" => "C:/laragon/bin/php/php-8.2.10-Win32-vs16-x64/extras/ssl/openssl.cnf" // 替换成你实际的文件路径 ));
注意路径要用正斜杠/或者双反斜杠\\,避免转义错误。
方式二:在php.ini中全局配置
打开Laragon的php.ini文件(可以通过Laragon面板的Menu > PHP > php.ini快速打开),找到openssl.cnf相关配置项,去掉前面的注释,填写正确的文件路径:
openssl.cnf = "C:/laragon/bin/php/php-8.2.10-Win32-vs16-x64/extras/ssl/openssl.cnf"
保存后重启Laragon的Web服务(Apache或Nginx),再运行代码即可。
另外,如果你找不到openssl.cnf文件,可以在Laragon根目录用搜索功能查找,确保文件存在。
内容的提问来源于stack exchange,提问作者momo
相关产品推荐
相关产品推荐

