2013-07-08 9 views
7

मुझे एक साधारण वेब-एप्लिकेशन बनाने की आवश्यकता है। मैंने Poet (Mason2) के साथ ऐसा करने का निर्णय लिया, जो प्लाक का उपयोग करता है।पैक/पीएसजीआई/कवि आवेदन के साथ प्रमाणीकरण और/या HTTPS

एप्लिकेशन को केवल प्रमाणित उपयोगकर्ताओं द्वारा उपयोग करने की अनुमति दी जानी चाहिए, इसलिए मुझे कुछ लॉगिन/पासवर्ड कार्यक्षमता बनाने की आवश्यकता है।

पहले से ही एक प्लैक मॉड्यूल Plack::Middleware::Auth::Basic है जो मूल उपयोगकर्ता ऑथ का उपयोग करने की अनुमति देता है जो .htpasswd या इसी तरह की जांच करने के लिए सेटअप करना संभव बनाता है। लेकिन बुनियादी प्रमाणीकरण बहुत सुरक्षित नहीं है; कोई भी पैकेट कैप्चरिंग या पसंद के साथ लॉगिन पासवर्ड ले सकता है।

यहाँ कर रहे हैं 2 संभव समाधान:

  • HTTPS के माध्यम से मेरी app.psgi चल (443) - लिंक स्तर एन्क्रिप्शन
  • या वहाँ कुछ बेहतर प्रमाणन विधि जो https के बिना सुरक्षित प्रमाणन के लिए अनुमति देते है?

सवाल:

  • HTTPS के बारे में - मैं कैसे HTTPS के माध्यम से मेरी app.psgi चलाने के लिए पता नहीं है। क्या मुझे कुछ हद तक अपने आवेदन को संशोधित करने की ज़रूरत है? कोई लिंक जो मुझे दिखाता है कि https पर plackup कैसे चलाएं?
  • या दूसरे के लिए: वहाँ कुछ विधि (मिडलवेयर/या पर्ल मॉड्यूल) क्या मुझे मानक एन्क्रिप्ट नहीं किए गए पोर्ट पर निर्माण सुरक्षित प्रमाणीकरण की अनुमति देता है (80)

तो, क्या एक रिश्तेदार आसान तरीका है एक प्लेक आवेदन के साथ सुरक्षित प्रमाणीकरण प्राप्त करने के लिए?

पीएस: मुझे बाकी संचार की परवाह नहीं है। मुझे केवल सुरक्षित लेख की आवश्यकता है जो पासवर्ड को पकड़ने की अनुमति नहीं देता है।

पीपीएस: https अपाचे (और स्वयं हस्ताक्षरित) प्रमाण पत्र के साथ आसान है। लेकिन मुझे नहीं पता कि plackup (और या कोई अन्य प्लेक आधारित सर्वर)

उत्तर

7

एक और अधिक सरल विकल्प का उपयोग करने के लिए क्या plackup में बनाया गया है के साथ जाना, Starman, और ग़ुलाम:

plackup --enable-ssl --ssl-key-file=... --ssl-cert-file=... 

(या)

starman --enable-ssl --ssl-key-file=... --ssl-cert-file=... 

(या)

+०१२३५१६४१०
thrall --enable-ssl --ssl-key-file=... --ssl-cert-file=... 
1

आप अपाचे जैसे कुछ वेबसर्वर के पीछे अपना एप्लिकेशन चला सकते हैं जो जानता है कि उपयोगकर्ताओं को सुरक्षित रूप से प्रमाणीकृत कैसे करें।

  1. उपयोग FastCGI
  2. प्रॉक्सी अपने अनुप्रयोग के लिए अनुरोध:

    यह आपके पास दो विकल्प हैं करने के लिए,।

FastCGI मार्ग जाने के लिए, plackup इस तरह का उपयोग करें:

plackup -s FCGI myapp.psgi 

और अपने अपाचे config में, कुछ इस तरह का उपयोग करें:

LoadModule fastcgi_module libexec/mod_fastcgi.so 
<IfModule mod_fastcgi.c> 
    FastCgiExternalServer /tmp/myapp.fcgi -host localhost:5000 
    Alias /myapp/ /tmp/myapp.fcgi/ 
</IfModule> 

वैकल्पिक रूप से, आप अपाचे प्रॉक्सी अनुरोध कर सकता है आपके ऐप पर:

ProxyPass /myapp http://localhost:5000/ 

के बाद से plackup उत्पादन प्रणालियों के लिए अनुशंसित नहीं है, आपको Starman पर देखना चाहिए, जो आपके विकल्पों को प्रॉक्सी समाधान तक सीमित कर देगा।

2

The Apache config ऐसा दिखाई देता है अगर आप Plack + अपाचे/मोड-पर्ल

<Location /path/myapp> 
    SetHandler perl-script 
    PerlResponseHandler Plack::Handler::Apache2 
    PerlSetVar psgi_app /path/to/my.psgi 
</Location> 
संबंधित मुद्दे