सबसे पहले, यह मोज़ोलियस (या एलडब्लूपी या जो कुछ भी) एसएनआई का समर्थन नहीं करता है। यह IO::Socket::SSL है, लेकिन वास्तव में नहीं, क्योंकि यह Net::SSLeay है, लेकिन वास्तव में नहीं क्योंकि यह openssl का आपका संस्करण है।
- openssl 1.0 या बाद में स्थापित करें। आप शायद
--prefix
विकल्प का उपयोग एक नई निर्देशिका में स्थापित करने के लिए कॉन्फ़िगर करने के लिए करना चाहते हैं ताकि आप जो कुछ भी पहले से ही परेशान न हों और जिस पर अन्य चीजें निर्भर हों।
- नए openssl के खिलाफ इसे संकलित करने के लिए Net::SSLeay अद्यतन करें। आपको संस्करण 1.50 या बाद में संस्करण की आवश्यकता है। यहां मुद्दा यह है कि बाद में Net::SSLeay खुशी से पुराने openssl के साथ काम करेगा। मॉड्यूल को अपग्रेड करने से आपको नया openssl नहीं मिलता है।
- IO::Socket::SSL से 1.56 या बाद में अद्यतन करें। सबसे पुरानी रिलीज 2012 से है, इसलिए आपको वैसे भी अपडेट करना चाहिए।
- Mojolicious 2.83 (2012 में जारी, इतना पुराना) ग्राहकों के लिए एसएनआई समर्थन जोड़ा गया, और Mojolicious 6.40 (एक महीने पहले) ने इसे सभी वेब सर्वरों के लिए जोड़ा।
आप प्रत्येक मॉड्यूल के लिए परिवर्तन फाइल में डाल कर इस जानकारी प्राप्त कर सकते हैं, लेकिन हम यहां हैं, तो के Net::SSLeay अनुसार क्रमबद्ध यह मॉड्यूल स्थापित करने के रूप में सरल नहीं है के साथ मिलता है।
OPENSSL_PREFIX
चर का प्रयोग करें cpan
बताने के लिए (और सामान इसे चलाता) जहां सही openssl खोजने के लिए।
$ export OPENSSL_PREFIX=/usr/local/ssl
$ cpan Net::SSLeay IO::Socket::SSL
आप पहले से ही नवीनतम Net::SSLeay है, लेकिन openssl के एक पुराने संस्करण के खिलाफ संकलित हैं, तो आप यह पुन: संयोजित करने के लिए मॉड्यूल स्थापित मजबूर कर सकते हैं, भले ही cpan
लगता है कि वह अप-टू-डेट:
$ cpan -f Net::SSLeay IO::Socket::SSL
$ /usr/local/ssl/bin/openssl version
OpenSSL 1.0.1r 28 Jan 2016
$ perl -MIO::Socket::SSL -le 'print IO::Socket::SSL->VERSION'
2.024
$ perl -MIO::Socket::SSL -le 'print IO::Socket::SSL->can_client_sni'
1
स्रोत
2016-02-19 05:49:34
मुझे लगता है कि यदि आप एसएनआई (यानी क्लाइंटहेल्लो में सर्वर नाम भेजना) या सर्वर समर्थन के लिए क्लाइंट समर्थन के बारे में पूछ रहे हैं, तो मेरा प्रश्न स्पष्ट होना चाहिए, यानी एक बहु-साइट Mojolicious सर्वर क्लाइंट की साइट के आधार पर विभिन्न प्रमाणपत्र प्रदान करते हैं का अनुरोध किया। जबकि उत्तरार्द्ध IO :: सॉकेट :: एसएसएल के साथ कार्यान्वित किया जा सकता है, मुझे यकीन नहीं है कि क्या Mojolicious इसका उपयोग करने का एक तरीका प्रदान करता है। –
क्लाइंट और सर्वर के लिए उत्तर सबसे अच्छा होगा। –