একটি বিপরীত প্রক্সি এসএসএল দিয়ে এসএনআই ব্যবহার করতে পারে?


18

আমাকে একটি বহিরাগত আইপি ঠিকানা ব্যবহার করে https- র মাধ্যমে বেশ কয়েকটি অ্যাপ্লিকেশন পরিবেশন করতে হবে।

উল্টো প্রক্সিতে এসএসএল শংসাপত্রগুলি পরিচালনা করা উচিত নয়। তারা অ্যাপ্লিকেশন সার্ভারে ইনস্টল করা হয়।

কোনও বিপরীত প্রক্সিটি এসএনআই ব্যবহার করতে এবং এসএসএল দিয়ে শেষের জন্য শেষ করার জন্য কনফিগার করা যেতে পারে?

এটি কি এনগিনেক্স বা অ্যাপাচি জাতীয় কিছু ব্যবহার করে সম্ভব? কনফিগারেশন দেখতে কেমন?

উত্তর:


14

এটি হ্যাপ্রোক্সির মাধ্যমে সম্ভব। আপনি একটি টিসিপি প্রক্সি সেটআপ করতে পারেন এবং এসএনআইটি বের করতে পারেন এবং এসএনআই-এর ভিত্তিতে রাউটিং করতে পারেন। এখানে একটি উদাহরণ:

backend be.app1
    mode tcp
    no option checkcache
    no option httpclose
    tcp-request inspect-delay 5s
    tcp-request content accept if { req.ssl_hello_type 1 }
    tcp-request content reject
    use-server server1 if { req.ssl_sni -m beg app1. }
    server server1 server1:8443 check id 1 weight 0

আপনি এসএসএল হ্যালো না পাওয়া পর্যন্ত অনুরোধটি বিলম্ব করা অপরিহার্য, অন্যথায় হ্যাপ্রোক্সি এসএনআই শিরোনাম পাওয়ার আগে কোনও সংযোগ দেওয়ার চেষ্টা করবে।

আমি ওজন 0 সহ সার্ভারগুলি ব্যবহার করছি কারণ আমার বর্তমান কনফিগারেশনে আমার প্রতিটি এসএনআইয়ের জন্য কেবল একটি সার্ভার চলছে এবং আমি চাই না যে তারা এলোমেলো অনুরোধগুলি গ্রহণ করবে। এটির সাথে খেলতে আপনি সম্ভবত আরও ভাল উপায়গুলি খুঁজে পেতে পারেন।

আশা করি এটা কাজে লাগবে.


আপনি কি আমাকে এর কোনও ডকুমেন্টেশন বা কনফিগারেশন স্নিপেটের দিকে নির্দেশ করতে পারেন যাতে আমি উত্তরটি গ্রহণ করতে পারি?
ব্যবহারকারী319862

3
@ user319862 আমি এই সুন্দর টিউটোরিয়ালটি পেয়েছি যা মনে হয় যা আলোচনা করা হচ্ছে।
মাইকেল হ্যাম্পটন

1
সত্যি? কেন কেউ এই উত্তরকে হ্রাস করবে?
ফ্লোরিন Asăvoaie

এটির সাথে সমস্যাটি হ'ল ক্লায়েন্টের আইপি ঠিকানাটি এগিয়ে দেওয়া হয় না, তাই সার্ভারটি কেবলমাত্র প্রক্সি থেকে আসা ট্র্যাফিক দেখে।
কাইল

@ কাইল অবশ্যই এটি টিসিপি প্রক্সি। আপনি যদি সার্ভারের জন্য রাউটার হিসাবে হ্যাপ্রপক্সিটি কনফিগার করে সেট করে থাকেন এবং tproxy ব্যবহার করেন তবে কেবলমাত্র এটির জন্য আপনি যা করতে পারেন।
ফ্লোরিন আসভোয়াই

5

আপনি স্নিপ্রোক্সি ব্যবহার করতে পারেন: https://github.com/dlundquist/sniproxy

উদাহরণ কনফিগারেশন:

listener 0.0.0.0:443 {
    protocol tls
    table TableHTTPS
    fallback 127.0.0.1:8443
}

listener 0.0.0.0:80 {
    protocol http
    table TableHTTP
    fallback 127.0.0.1:8080
}

table TableHTTPS {
    domain1.com backend1:443
    domain2.org backend2:443
}

table TableHTTP {
    domain1.com backend1:80
    domain2.org backend2:80
}

প্রকল্প সম্পর্কে পোস্ট করার জন্য ধন্যবাদ। আমি এটি সম্পর্কে অবগত ছিলাম না
user319862

@ মিক হাই মিক যখন এসএনআইকে স্বচ্ছ প্রক্সি হিসাবে চালিত করেন এটি কিছু সাইটকে এসএসএল ত্রুটি ভঙ্গ করে। কিভাবে ঠিক হবে এটা ?
গ্রিপেনফাইটার

1

এটি অবশ্যই সম্ভব, 2019 সালে আসন্ন টিএলএস 1.3 সহ! অনেক ওয়েব সার্ভার বা বিশেষায়িত বিপরীত প্রক্সি বাক্সের বাইরে এই কার্যকারিতা সরবরাহ করে:

  • এনগিনেক্স ≥ 1.11.5 (দেবিয়ান-বাস্টার বা প্রসারিত-ব্যাকপোর্ট)
  • HAProxy ≥ 1.5। (দেবিয়ান ≥ জেসি)
  • স্নিপ্রোক্সি (ডিবিয়ান ≥ বাস্টার)
  • প্রভৃতি

এটি এনগিনেক্সের জন্য একটি উদাহরণ কনফিগারেশন, যা একটি বিপরীত প্রক্সি প্রয়োজন সেটআপগুলির জন্য খুব জনপ্রিয় পছন্দ:

stream {
  map $ssl_preread_server_name $selected_upstream {
    example.org upstream_1;
    example.net upstream_2;
    example.com upstream_3;
    default upstream_4;
  }
  upstream upstream_1 { server 10.0.0.1:443; }
  upstream upstream_2 { server 10.0.0.2:443; }
  upstream upstream_3 { server 10.0.0.3:443; }
  upstream upstream_4 { server 10.0.0.4:443; }
  server {
    listen 10.0.0.5:443;
    proxy_pass $selected_upstream;
    ssl_preread on;
  }
}

প্রাসঙ্গিক Nginx মডিউলগুলি stream_coreএবং stream_ssl_preread। সারগ্রন্থ:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.