এনগিনেক্সকে প্রবাহী এসএসএল দিয়ে বিপরীত প্রক্সি হিসাবে কনফিগার করুন


40

আমি একটি এনগিনেক্স সার্ভারকে বিপরীত প্রক্সি হিসাবে কনফিগার করার চেষ্টা করি যাতে ক্লায়েন্টদের কাছ থেকে পাওয়া https অনুরোধগুলি https এর মাধ্যমেও আপস্ট্রিম সার্ভারে ফরোয়ার্ড করা হয়।

আমি যে কনফিগারেশনটি ব্যবহার করি তা এখানে:

http {

    # enable reverse proxy
    proxy_redirect              off;
    proxy_set_header            Host            $http_host;
    proxy_set_header            X-Real-IP       $remote_addr;
    proxy_set_header            X-Forwared-For  $proxy_add_x_forwarded_for;

    upstream streaming_example_com 
    {
          server WEBSERVER_IP:443; 
    }

    server 
    {
        listen      443 default ssl;
        server_name streaming.example.com;
        access_log  /tmp/nginx_reverse_access.log;
        error_log   /tmp/nginx_reverse_error.log;
        root        /usr/local/nginx/html;
        index       index.html;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_certificate /etc/nginx/ssl/example.com.crt;
        ssl_certificate_key /etc/nginx/ssl/example.com.key;
        ssl_verify_client off;
        ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;


        location /
        {
            proxy_pass  https://streaming_example_com;
        }
    }
}

যাইহোক, আমি যখন বিপরীত প্রক্সি ব্যবহার করে কোনও ফাইল অ্যাক্সেস করার চেষ্টা করি তখন আমি ত্রুটিটি বিপরীত প্রক্সি লগগুলিতে পাই:

2014/03/20 12:09:07 [ত্রুটি] 4113079 # 0: * 1 এসএসএল_ডো_হ্যান্ডশেক () ব্যর্থ হয়েছে (এসএসএল: ত্রুটি: 1408E0F4: এসএসএল রুটিনগুলি: SSL3_GET_MESSAGE: অপ্রত্যাশিত বার্তা) যখন এসএসএল হস্তান্তরিত হয়েছে প্রবাহে, ক্লায়েন্ট: 192.168.1.2, সার্ভার :stream.example.com, অনুরোধ: "GET /publishers/0/645/_teaser.jpg HTTP / 1.1", upstream: " https://MYSERVER.COM:443/publishers/0/645/_teaser.jpg " , হোস্ট: "stream.example.com "

আমি কি ভুল করছি কোন ধারণা?


আপনি upstreamএকই ত্রুটি পেয়েছেন কিনা তা দেখার জন্য আপনি প্রক্সি_পাস নির্দেশিকায় সরাসরি WEBSERVER_IP রেখে মডিউলটি ব্যবহার না করে চেষ্টা করেছিলেন ?
বেনোইট

না, আমি এটি চেষ্টা করে দেখিনি তবে বিকল্পটির নীচে বর্ণিত proxy_ssl_session_reuse off;হিসাবে এটি প্রত্যাশা অনুযায়ী কাজ করেছে।
অ্যালেক্স ফ্লো

10
সমর্থিত প্রোটোকলগুলি থেকে SSLv3 সরান। এটি সুরক্ষিত নয় এবং আপনার এটি ব্যবহার করা উচিত নয়: ssl_protocols SSLv3
user220703

উত্তর:


30

আমি খুঁজে পেয়েছি যে ত্রুটিটি ছিল, আমার যুক্ত করা দরকার proxy_ssl_session_reuse off;


1
ধন্যবাদ. এই কনফিগারটি ব্যবহারের পরে যাদের এখনও সমস্যা হতে পারে তাদের জন্য, প্রক্সি_পাসে প্যারামিটার হিসাবে প্রদত্ত ইউআরএল শুরুতে কেবল HTTP এর পরিবর্তে https ব্যবহার করতে ভুলবেন না। অন্যথায়, nginx প্রবাহিত ট্র্যাফিক এনক্রিপ্ট করবে না এবং আপনি এখনও একই ত্রুটি বার্তা পাবেন।
লুসিও মোল্লিন্ডো

1

আমার ক্ষেত্রে, আমি ক্লাউডফ্লেয়ারের পিছনে একটি ওয়েবসাইটের প্রক্সিটি উল্টানোর চেষ্টা করছিলাম। আমি একই ত্রুটি পেয়েছি /var/log/nginx/error.log। আমি অনেকগুলি সমাধান চেষ্টা করেছিলাম এবং এটি আমার জন্য কাজ করেছে:

proxy_ssl_server_name on;

হ্যা এমনকি এটি ২০১২ এখন কিছু পরিষেবা এখনও হোস্ট সাইটগুলির মধ্যে পার্থক্য করার জন্য এসএনআই প্রয়োজন।

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