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必须包含的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |