टॉमकट के सामने अपाचे के साथ एसएसएल सेटअप


9

एसएसएल के साथ अपाचे को सेटअप करने की कोशिश कर रहा हूं और मेरे टॉमकैट उदाहरण के लिए एसएसएल अनुरोध करता है। मुझे लगता है कि मैंने एसएसएल का काम किया, लेकिन अभी भी एक त्रुटि है जो दिखाता है:

Bad Gateway

The proxy server received an invalid response from an upstream server.

* एसएसएल वर्चुअलहोस्ट *

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost _default_:443>
SSLEngine On
SSLProxyEngine On
DocumentRoot "/var/apache-tomcat-7.0.34/webapps/Learn2Gether/"

SSLCertificateFile /etc/pki/tls/learn2gether/cert-6090205098829887.pem
SSLCertificateKeyFile /etc/pki/tls/learn2gether/private_key_unlocked.pem
SSLCertificateChainFile /etc/pki/tls/learn2gether/rubca-chain.pem


BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

ServerName www.learn2gether.rubel.rub.de
ServerAlias learn2gether.rubel.rub.de

#RewriteRule ^\/$ /Learn2Gether/index.html [PT]
##RewriteRule ^/(.*)$ /$1 [PT]

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/

</VirtualHost>
~               

HTTP VH HTTPS पर पुनर्निर्देशित

NameVirtualHost *:80

<VirtualHost _default_:80>
   ServerName www.learn2gether.rubel.rub.de
   ServerAlias learn2gether.rubel.ruhr-uni-bochum.de
RewriteEngine on
# DocumentRoot "/var/apache-tomcat-7.0.34/webapps/Learn2Gether/"
RewriteCond %{HTTP_HOST} !^learn2gether.rubel.ruhr-uni-bochum\.de [NC]
RewriteRule ^/(.*)$ http://learn2gether.rubel.ruhr-uni-bochum.de/$1 [R=301,L]

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}$1 [L]

#RewriteRule ^\/$ /Learn2Gether/index.html [PT]
#RewriteRule ^/(.*)$ /$1 [PT]

#ProxyPass / https://localhost:8443/
#ProxyPassReverse / https://localhost:8443/
</VirtualHost>

टोमैट्स अपाचे कनेक्टर

    <Connector port="8443"
  protocol="HTTP/1.1"
   connectionTimeout="20000"
    compression="on"
     compressionMinSize="32"
      noCompressionUserAgents="gozilla, traviata"
       compressableMimeType="text/html,text/xml,text/javascript,application/x-javascript,text/css"
        redirectPort="8443"
         URIEncoding="UTF-8"
          proxyPort="443"
           proxyName="learn2gether.rubel.ruhr-uni-bochum.de"
            scheme="https"
             secure="true"
/>

क्या टॉमकैट सर्वर को स्व हस्ताक्षरित प्रमाण पत्र के साथ कॉन्फ़िगर किया गया है? इसके अलावा, अगर आप tomcat के लिए ssl फ्रंटेंड के रूप में Apache का उपयोग कर रहे हैं, तो आप tomcat सर्वर पर ssl का उपयोग क्यों कर रहे हैं? सबसे अच्छा अभ्यास यह है कि बस अपने टॉमकैट को http, और अपाचे सर्वर पर https को ऑफलोड करना है।
क्रिश्चियन वैन बेसीन

जवाबों:


14

जब आप http या https को https में सम्‍मिलित करते हैं, तो आपको ssl क्लाइंट के रूप में अपाचे को कॉन्फ़िगर करना होगा । जब अपाचे आपके टॉमकैट सर्वर से बात करता है तो यह एक वेब क्लाइंट के रूप में कार्य करता है। हालांकि अपाचे आमतौर पर एसएसएल क्लाइंट के रूप में कार्य नहीं करेगा।

सबसे पहले मैं आपको सुझाव दूंगा कि आप पहले इस पर विचार करें कि क्या आपको वास्तव में इसकी आवश्यकता है, आप ऐसा क्यों कर रहे हैं। जब टॉमकैट और अपाचे एक ही सर्वर पर रहते हैं तो सामान्य प्रथा यह है कि टॉमकैट सिर्फ सादे http (या ajp) की सेवा देता है और अपाचे सर्वर के लिए ssl को लोड करता है। आमतौर पर अपाचे और टॉमकैट सर्वर के बीच ssl होने की कोई आवश्यकता नहीं है। Tomcat सर्वर पर ssl का न होना आपको बहुत परेशानी से बचाने वाला है।

उदाहरण के लिए आपको अपने टॉमकैट उदाहरण में पोर्ट 8080 पर एक HTTP कनेक्टर को परिभाषित करने की आवश्यकता है, और आपके अपाचे एसएसएल वर्चुअल होस्ट के भीतर से सभी अनुरोधों को पुनर्निर्देशित करें:

<VirtualHost _default_:443>
SSLEngine On

SSLCertificateFile /etc/pki/tls/learn2gether/cert-6090205098829887.pem
SSLCertificateKeyFile /etc/pki/tls/learn2gether/private_key_unlocked.pem
SSLCertificateChainFile /etc/pki/tls/learn2gether/rubca-chain.pem


BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

ServerName www.learn2gether.rubel.rub.de
ServerAlias learn2gether.rubel.rub.de

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

</VirtualHost>

लेकिन अगर आप अभी भी तय करते हैं कि आपको ssl को ssl करने की आवश्यकता है, तो आपको और अधिक बदलावों की आवश्यकता होगी। अपाचे को एसएसएल क्लाइंट के साथ-साथ एसएसएल सर्वर के रूप में कार्य करने में सक्षम होना चाहिए। जब Apache https का उपयोग करके किसी अन्य सर्वर से बात करता है तो यह क्लाइंट की भूमिका लेने के बाद होता है। यह इतना आसान नहीं है, और इसमें बहुत सारी समस्याएं हैं जिन्हें आप चला सकते हैं। आपको इसे जोड़ना होगा:

# turn on SSL proxying.
SSLProxyEngine On

# to tell Apache where to find CA certificates to check server certificates with:
# (You can choose yourself where you put these certificates)
SSLProxyCACertificatePath /path/to/ca/certificates.

फिर इस रास्ते में आपको उस सीए सर्टिफिकेट को लगाने की जरूरत होती है, जिस सर्टिफिकेट का इस्तेमाल आप सर्वर से करते हैं। यदि आप एक "स्व-हस्ताक्षरित" प्रमाण पत्र का उपयोग करते हैं तो आपको इसे इस अवधि में रखना होगा।

एक बार जब आप ऐसा कर लेते हैं तो आपको उस निर्देशिका में "c_rehash" चलाने की आवश्यकता होती है। c_rehash एक मानक ओपनसेल वितरण का हिस्सा है। c_rehash इस dir में हैशेड एलियासेस बनाता है। अपाचे को इनकी जरूरत होती है।

परीक्षण करने के लिए यदि सब कुछ है तो आप निम्नलिखित कार्य कर सकते हैं:

 openssl s_client -CApath /path/to/ca/certificates -connect remoteserver:8443

यदि आप सफल होते हैं, तो आपको एक संकेत मिलेगा जहां आप अनुरोध कर सकते हैं। बस कुछ कोशिश करो।

 GET /

और देखें कि क्या आपको कुछ मिलता है। यदि यह परीक्षण succesfull है तो अपाचे को भी काम करना चाहिए।

अपने https सर्वर से कनेक्शन को आगे बढ़ाने के लिए अब आप ReWriteRule या प्रॉक्सी स्टेटमेंट जोड़ सकते हैं।


im वास्तव में नया है कि .. मैं सिर्फ एसएसएल के लिए अपाचे का उपयोग कैसे कर सकता हूं और केवल http के साथ पुनर्निर्देशित कर सकता हूं?
सैफडीन

मेरे लिए आसान लगता है .. मैं बस सामने के अंत के लिए एसएसएल चाहता
हूं

यदि आप बस अपाचे का उपयोग करना चाहते हैं तो टॉमकैट के लिए ssl फ्रंटेंड के रूप में आपको बस अपने HTTP सर्वर पर http या ajp कनेक्टर को कॉन्फ़िगर करना होगा, और इसके लिए अपाचे आगे अनुरोध करना होगा।
क्रिस्चियन वैन बेसिन

बीमार है कि सोमवार को बाहर की कोशिश करो!
सैफडीन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.