PHP 5.xで自己署名証明書を作成したいと思います。私のPHPコードで定義されるはずの私自身の(別の)openssl設定を使用します。 PHPスクリプトは異なる環境(共有ホスティングWebサーバ)で実行されます。OpenSSLには本当にopenssl.confへのパスが必要ですか?
公式PHP Manualは言う:デフォルトで
、お使いのシステムopenssl.confの情報は、要求を初期化するために使用されます。 configargsのconfig_section_sectionキーを設定して、構成ファイルセクションを指定することができます。 代替openssl設定ファイルを指定するには、設定キーの値を使用するファイルのパスに設定します。以下のキー、以下の表のようにconfigargsに存在するが、openssl.confにそれらの同等物のように動作している場合.....
私の質問:私はパスを指定する必要があります理由はありますそれなしで正常に動作するようですので、明示的に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, $privkey, 365, $Configs);
を編集:ユーザーで
がPHP Manual上の注意事項を貢献し、なぜ彼らはいつものopenssl.cnfへのパスを指定してください?たとえば、次のように
$configargs = array(
'config' => '/etc/ssl/openssl.cnf',
'digest_alg' => 'md5',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 666,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => false,
);
をPHPでの自己署名証明書を作成するので、あなたは以上同じことを入力する必要はありませんし、作成するすべての証明書についてデフォルトなしでうまくいくのはちょっと面倒です。 –
私はPHP/OpenSSLエキスパートではありませんが、一部の設定はPHPスクリプトで定義/変更できないようです。誰かがこれを確認/却下できますか? – Mike