2016-04-17 6 views
6

मेरे पास हास्केल नौकर और वार में मूल हैलो-वर्ल्ड एप्लिकेशन है। यह वास्तविक कोड नहीं है, लेकिन सादगी के लिए मान लीजिए कि मैं इसे का उपयोग कर रहा है:हास्केल वार/वाई और एचटीटीपीएस - उन्हें कैसे काम करना है?

import Network.Wai 
import Network.Wai.Handler.Warp 
import Servant 


personAPI :: Proxy PersonAPI 
personAPI = Proxy 

server :: Server PersonAPI 
server = return people 

app :: Application 
app = serve personAPI server 

serveApp :: IO() 
serveApp = run 80 app 

यह एक सर्वर पर ठीक काम करता है। Http के साथ।

मैं nginx या apache का उपयोग नहीं कर रहा हूं, मैं इसे चलाता हूं और इस बिंदु पर यह मेरे लिए ठीक है।

लेकिन https के साथ यह पृष्ठ लोड नहीं करेगा। मैंने https प्रमाणपत्र स्थापित किया है लेकिन मैंने इकट्ठा किया है कि मुझे किसी भी तरह इसका उपयोग करने के लिए वार्प/वाई सेट करना चाहिए, क्योंकि डिफ़ॉल्ट रूप से यह इसका उपयोग नहीं करेगा। इस बारे में जानकारी की कमी है - वार्प/वाई और एसएसएल, मुझे कुछ भी नहीं मिला है। क्या कोई मेरी मदद कर सकता है?

उत्तर

7

मुझे लगता है कि सबसे आसान तरीका है warp-tls लाइब्रेरी का उपयोग कर रहा है - TLSSettings में अपने प्रमाण पत्र फ़ाइलों settup (मैं tlsSettings पहले की कोशिश करेंगे) और run के बजाय runTLS का उपयोग करें:

serveApp :: IO() 
serveApp = do 
    let tls = tlsSettings "pathToCert" "pathToKey" 
    runTLS tls (setPort 443 defaultSettings) app 
+0

तुम सब कुछ पता है! – Jushiti

+0

लेकिन वार्प-टीएलएस पर यह कहता है "एसएसएल के लिए समर्थन अब अप्रचलित है।" और एसएसएल मुझे चाहिए। – Jushiti

+0

मैं आपको आश्वस्त कर सकता हूं कि मुझे बहुत कम पता है (Hayoo में प्रश्नों को कैसे दर्ज करें;) – Carsten

संबंधित मुद्दे