मैं PHP 5.x में एक स्व-हस्ताक्षरित प्रमाणपत्र बनाना चाहता हूं। मेरे अपने (वैकल्पिक) openssl विन्यास के साथ जो मेरे PHP कोड द्वारा परिभाषित किया जाना चाहिए। PHP स्क्रिप्ट विभिन्न वातावरण (साझा होस्टिंग वेबसर्वर) पर चलती है।क्या 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,
);
.conf फ़ाइल चूक निर्दिष्ट करने के लिए प्रयोग किया जाता है बनाना ताकि आप अधिक एक ही बात में प्रवेश करने की जरूरत नहीं है और आपके द्वारा बनाए गए प्रत्येक प्रमाण के लिए। चूक के बिना जा रहा है ठीक है, बस और अधिक थकाऊ। –
मैं एक PHP/OpenSSL विशेषज्ञ नहीं हूँ, लेकिन ऐसा लगता है कि कुछ विन्यास सेटिंग्स परिभाषित नहीं किया जा सकता/एक PHP स्क्रिप्ट से बदल दिया है। क्या कोई इसे पुष्टि/खारिज कर सकता है? – Mike