প্রবাহী এসএসএল সহ বিপরীত প্রক্সি হিসাবে এনজিনেক্স


19

স্ব-স্বাক্ষরিত শংসাপত্রগুলি ইনস্টল না করে ক্লায়েন্টদের সংযোগ স্থাপনের জন্য আমি একটি অভ্যন্তরীণ এপিআইয়ের জন্য একটি প্রক্সি তৈরি করছি।

ক্লায়েন্টরা (অন্তর্নির্মিত, মালিকানাধীন এবং কেবল অভ্যন্তরীণভাবে ব্যবহৃত) এসএসএলের সাথে এনজিন্স বক্সের সাথে সংযোগ স্থাপন করবে, যেখানে আমি অ্যাপ্লিকেশন স্তরে (একটি রেল অ্যাপ্লিকেশন) শংসাপত্রগুলি বৈধ করতে XSendfile ব্যবহার করছি । শংসাপত্রগুলি বৈধ হলে, সংযোগটি এনজিনেক্সে ফিরে যায় যেখানে এটি প্রবাহী সার্ভারে সংযোগটি প্রেরণ করতে প্রক্সি_পাস ব্যবহার করে।

এখন এটি স্ট্যান্ডার্ড http সংযোগের জন্য দুর্দান্ত কাজ করে তবে আমি কীভাবে আমাদের শংসাপত্রগুলিকে মিশ্রণে যুক্ত করতে পারি তা বোঝার চেষ্টা করছি।

এই প্রশ্নের প্রায় অভিন্ন এই এক , কিন্তু বিশ্রী শংসাপত্র প্রয়োজনীয়তা।

এটি কি এনজিনেক্সের মাধ্যমেও সম্ভব? এর চেয়ে ভাল সমাধান কি আছে?

আমি ক্লায়েন্ট -> এনজিনেক্স, এবং এনজিএনএক্স থেকে এপিআই-তে স্বাক্ষরিত শংসাপত্রের থেকেও এইচপি-র জন্য বন্দোবস্ত করেছি।

উত্তর:


19

এই প্রশ্নটিতে যে কারওর পদক্ষেপ নেওয়ার দরকার পড়ে যে আপনি এনজিএনএক্স ব্যবহার করতে চান আপনি এটিকে যে কোনও সাধারণ প্রক্সি এর মতো সেট আপ করতে পারেন এবং ব্যাকএন্ড থেকে স্ব-স্বাক্ষরিত শংসাপত্র গ্রহণ করতে আপনাকে রফতানি হওয়া পেম শংসাপত্র সরবরাহ করতে হবে (এবং সম্ভবত কোনও কী) এবং এসএসএল যাচাইকরণ সেট করতে হবে বন্ধ। উদাহরণ স্বরূপ:

...

server {
    listen       10.1.2.3:80;
    server_name  10.1.2.3 myproxy.mycompany.com;

    location / {
         proxy_pass                    https://backend.server.ip/;
         proxy_ssl_trusted_certificate /etc/nginx/sslcerts/backend.server.pem;
         proxy_ssl_verify              off;

         ... other proxy settings
    }

যদি আপনার সুরক্ষিত পিছনের দিকের সার্ভারের নাম সনাক্তকরণ এসএনআই ব্যবহার করে একাধিক হোস্ট আইপি / পোর্ট জুড়ে দেওয়া হয় তবে আপনাকে proxy_ssl_server_name on;কনফিগারেশনে অন্তর্ভুক্ত করতেও হতে পারে । এটি nginx 1.7.0 এবং তার পরে কাজ করে।


1
proxy_ssl_server_name on;গুগল অ্যাপ ইঞ্জিনে কোনও অন্তর্নির্মিত গুগল পরিচালিত এসএসএল ব্যবহার করে কোনও হোস্টের কাছে ট্র্যাফিক প্রক্সিং করার সময় আমার এই কাজটি করার দরকার ছিল! (এটি কোনও স্ব-স্বাক্ষরিত শংসাপত্র বা অন্য কোনও কিছুই নয়, সুতরাং এটির জন্য কেবল এটির একটি লাইনের দরকার ছিল)। দুর্দান্ত টিপ জন্য ধন্যবাদ।
এক্সপি 84

আমি যদি ssl_cerર્ટate ব্যবহার না করি তবে "শ্রুত ... এসএসএল" নির্দেশিকার জন্য "কোনও" ssl_cerર્ટate "সংজ্ঞায়িত পেয়েছি। প্রবাহের শংসাপত্রটি না দিয়ে এসএসএল প্রক্সি করা কি সম্ভব?
দামিয়েন

মন্তব্যটি প্রজারা এইচটিএমএলকে আপস্ট্রিম https এ সংযুক্ত করার বিষয়ে বিষয়বস্তু। আপনি যদি https প্রক্সি করতে চান তবে আলাদা আলাদা প্রশ্ন হিসাবে এটি সম্ভবত আরও ভালভাবে সম্বোধন করা উচিত। দ্রুত এবং সংক্ষিপ্ত উত্তর হ'ল নিনজিন্স শংসাপত্র এবং ব্যক্তিগত কী ব্যতীত কোনও https পোর্টে "শুনতে" পারবেন না।
চমকপ্রদ লিনাক্স ব্যবহারকারী

5

আমি মনে করি আপনি সম্ভবত এটির মতো কিছু চান (স্পষ্টতই এই উদাহরণটির জন্য সরলীকৃত):

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    upstream backend {
        server mybackendserver:443;
    }

    server {
        server_name localhost;
        listen 443 ssl;
        ssl_certificate /etc/nginx/server.crt;
        ssl_certificate_key /etc/nginx/server.key;
        ssl_verify_client off;
        location / {
            proxy_pass  https://backend;
            proxy_set_header Host $http_host;
            proxy_set_header X_FORWARDED_PROTO https;
        }
    }
}

আপনাকে কেবলমাত্র পরিবর্তন করতে হবে "হোস্ট" কে সুস্পষ্ট করে তোলা - উদাহরণস্বরূপ, যদি আপনার প্রক্সিড হোস্টের নাম এনজিঙ্ক্স প্রক্সি সার্ভারে ব্যবহৃত হোস্টের নামের মতো না হয়।


আমার উপলব্ধি থেকে, ssl_cerર્ટate এবং ssl_cerર્ટate_key পরামিতি ক্লায়েন্ট সংযোগকে বোঝায় , আপস্ট্রিম সংযোগটি নয়। এটাই কি?
সিমোনমডাক্স

1
আমি যা বুঝতে পেরেছি তা হ্যাঁ। এই উদাহরণে, ক্লায়েন্টটি যে শংসাপত্রটি দেখে তা হ'ল এনজিনেক্স by nginx সার্ভারের সরবরাহিত একটিকে দেখে (এবং যাচাই করে? আমি নিশ্চিত নই ...) তবে এটি ক্লায়েন্টের কাছে দিয়ে দেয় না।
জাম

3

ভবিষ্যতে যে কেউ এর জুড়ে আসে, আমি এর জন্য এনজিনেক্স ব্যবহার না করে শেষ করেছি।

পরিবর্তে, আমি "ক্লায়েন্ট মোড" এ স্টানেল ব্যবহার করে শেষ করেছি। সেটআপ করা খুব সহজ, এবং আমার যা প্রয়োজন ঠিক তা করে।

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