2010-08-24 14 views
8

पर असुरक्षित रूप से चला सकता हूं मुझे अपनी स्थिति समझाएं।क्या मैं पोर्ट 443 पर सुरक्षित रूप से टॉमकैट चला सकता हूं और 8080

वर्तमान में, मैं अनुप्रयोगों का एक बहुत बिलाव 6 पर चल रहा है, डिफ़ॉल्ट पोर्ट 8080

मैं बस कुछ अनुप्रयोगों कि में एक लॉग की आवश्यकता होगी बनाया पर है। मैं स्थापित करने के लिए एक SSL प्रमाणपत्र खरीदने के लिए जा रहा हूँ इस सर्वर पर।

मुझे पोर्ट 8443 का उपयोग करने का विचार पसंद नहीं है क्योंकि यह यूआरएल को और जटिल बनाता है। यदि मैं पोर्ट 80 पर टॉमकैट चलाता हूं, तो मुझे दर्जनों लिंक बदलना होगा और मुझे टॉमकैट को रूट (टॉमकैट के बजाए) के रूप में चलाने की ज़रूरत होगी।

क्या पोर्ट 8080 पर असुरक्षित अनुप्रयोगों को चलाने में कोई समस्या है लेकिन पोर्ट 443 पर सुरक्षित रन है?

मैं कल्पना कर रहा हूँ मेरी सेटअप URL हैं, जो इस तरह दिखना होगा:

http://mydomain.com:8080/report/controller?id=weather

https://mydomain.com/secure/controller?id=profile

यह संभव है?

+3

आप पोर्ट 443 के लिए रूट के रूप में बिलाव चलाने की ज़रूरत नहीं होगी? – erickson

उत्तर

5

हाँ, यह बिल्कुल ठीक है। बस संबंधित बंदरगाहों का उपयोग करने के लिए कनेक्टर को कॉन्फ़िगर करें। लेकिन 443 के लिए मुझे लगता है कि रूट भी आवश्यक होगा।

+0

हालांकि एक चेतावनी यह है कि यदि आप * निक्स पर हैं और गैर रूट के रूप में चलते हैं क्योंकि केवल रूट बंदरगाहों से बंधे जा सकते हैं <1024, लेकिन इसके आसपास काम करने के तरीके पर दस्तावेज़ ढूंढना मुश्किल नहीं होना चाहिए। – nos

+1

सामान्य बात बंदरगाह से बांधना है और फिर सामान्य, न्यूनतम-विशेषाधिकार प्राप्त उपयोगकर्ता को छोड़ना है। यह नहीं पता कि टॉमकैट को कैसे संभालने के लिए सेट किया गया है (बिना अपाचे httpd के बिना)। –

36

8803 पर 8080 और एचटीटीपीएस कनेक्टर पर HTTP कनेक्टर सेट करें। <Connector> घोषणा में proxyPort विशेषता जोड़ें और इसे डिफ़ॉल्ट HTTP और HTTPS पोर्ट (क्रमशः 80 और 443) पर सेट करें। 80 से 8080 तक और 443 से 8443 तक फ़ायरवॉल रीडायरेक्ट नियम सेट करें। फिर सर्वर पोर्ट नंबर निर्दिष्ट करने की आवश्यकता के बिना नियमित http और https URL स्वीकार करेगा।

नीचे इन कनेक्टरों की एक नमूना घोषणा है।

<Connector 
    maxSpareThreads='75' 
    port='8080' 
    proxyPort='80' 
    enableLookups='false' 
    maxThreads='150' 
    connectionTimeout='20000' 
    disableUploadTimeout='true' 
    minSpareThreads='5' 
    maxHttpHeaderSize='8192' 
    redirectPort='443' 
    acceptCount='200' 
/> 

<Connector 
    SSLEnabled='true' 
    keystoreFile='/path/to/keystore.jks' 
    maxSpareThreads='75' 
    port='8443' 
    proxyPort='443' 
    algorithm='SunX509' 
    enableLookups='false' 
    secure='true' 
    maxThreads='150' 
    connectionTimeout='20000' 
    disableUploadTimeout='true' 
    scheme='https' 
    minSpareThreads='5' 
    maxHttpHeaderSize='8192' 
    sslProtocol='SSL' 
    acceptCount='200' 
    clientAuth='false' 
/> 

और यहाँ कुछ अनुप्रेषित iptables कमांड कर रहे हैं:

# Redirect external packets 
-A PREROUTING -j NAT-Port-Redirect 

# redirect http traffic 
-A NAT-Port-Redirect -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 
# redirect https traffic 
-A NAT-Port-Redirect -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443 
+3

हालांकि पोस्टर ने उत्तर के रूप में उत्तर को चिह्नित किया है, आपका समाधान बहुत बेहतर है। –

+5

महान और साफ समाधान। मैंने उबंटू पर रीडायरेक्ट करने के लिए ऐसा किया: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j रेडियरेक्ट - टू-पोर्ट 8443. – hsnm

+0

मैंने उपर्युक्त चरणों का पालन किया। लेकिन मुझे त्रुटि कोड मिला: ERR_SSL_VERSION_OR_CIPHER_MISMATCH –

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