php – OpenSSL是否真的需要openssl.conf的路径?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – OpenSSL是否真的需要openssl.conf的路径?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 PHP 5.x中创建一个自签名证书.与我自己的(替代)oPEnssl配置应该由我的PHP代码定义. PHP脚本将在不同的环境(共享托管Web服务器)上运行.

官方PHP Manual说:

我的问题:是否一个原因我必须明确指定openssl.conf的路径,因为它似乎工作正常没有它:

$Configs = array(       
    'digest_alg' => 'sha1','x509_extensions' => 'v3_ca','req_extensions' => 'v3_req','PRivate_key_bITs' => 1024,'private_key_type' => OPENSSL_KEYTYPE_RSA,'encrypt_key' => true,'encrypt_key_cipher' => OPENSSL_CIPHER_3DES
);

$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn,$privkey,$Configs);
$sscert = openssl_csr_sign($csr,null,365,$Configs);

编辑:

用户PHP Manual上提供了笔记,为什么总是指定openssl.cnf的路径?例如:

$configargs = array(
    'config' => '/etc/ssl/openssl.cnf','digest_alg' => 'md5','req_extensions'   => 'v3_req','private_key_bits' => 666,'encrypt_key' => false,);
OpenSSL中有许多配置设置,不能通过$configargs(您传递给OpenSSL函数PHP参数)在PHP中定义.

如果没有指定备用Openssl配置文件,它将自动使用认的openssl.cnf.

建议:由于您的脚本将在不同的服务器上运行,所以您应该始终使用自己的openssl.cnf.

只需创建一个简单的文本文件,并在其中放入以下4行.然后将路径传递给您正在使用的OpenSSL功能(请看上面的第二个示例).

distinguished_name  = req_distinguished_name
[req_distinguished_name]
[v3_req]
[v3_ca]

看来这4行是最小的openssl.cnf必须包含的.

脚本宝典总结

以上是脚本宝典为你收集整理的php – OpenSSL是否真的需要openssl.conf的路径?全部内容,希望文章能够帮你解决php – OpenSSL是否真的需要openssl.conf的路径?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。