এনজিআইএনএক্সে টিএলএস 1.0 অক্ষম করুন


22

আমার একটি এনজিআইএনএক্স আমাদের সাইটের জন্য বিপরীত প্রক্সি হিসাবে অভিনয় করছে এবং খুব ভালভাবে কাজ করছে। এসএসএল প্রয়োজন এমন সাইটগুলির জন্য আমি সম্ভব একটি এসএসএলএল স্কোর যতটা শক্তিশালী তা নিশ্চিত করার জন্য raymii.org অনুসরণ করেছি । সাইটগুলির মধ্যে একটিতে পিসিআই ডিএসএস অনুবর্তী হওয়া দরকার তবে সর্বশেষতম ট্রাস্ট ওয়েভ স্ক্যানের ভিত্তিতে টিএলএস 1.0 সক্ষম হওয়ার কারণে এখন ব্যর্থ হচ্ছে।

এনজিএনএক্স.কম-এ আমার http স্তরে রয়েছে:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

আমার কাছে নির্দিষ্ট সার্ভারের জন্য:

ssl_protocols TLSv1.1 TLSv1.2;

আমি সাইফারগুলি পরিবর্তন করেছি, জিনিসগুলি HTTP স্তরের বাইরে এবং প্রতিটি এসএসএল সাইট সার্ভারে স্থানান্তরিত করেছি তবে আমি যখন চালনা করি তা বিবেচ্য নয়:

openssl s_client -connect www.example.com:443 -tls1

আমি টিএলএস 1.0 এর জন্য একটি বৈধ সংযোগ পাই। এসএসএল্যাবগুলি সাইটের জন্য এগনিক্স সেটআপ হিসাবে হিসাবে রাখে তবে টিএলএস 1.0 এর সাথে রাখে তাই আমি বিশ্বাস করি যে আমার বাকি সেটআপটি ঠিক আছে এটি ঠিক টিএলএস 1.0 বন্ধ করবে না।

আমি কি অনুপস্থিত হতে পারে তার উপর চিন্তাভাবনা?

openssl version -a
OpenSSL 1.0.1f 6 Jan 2014
built on: Thu Jun 11 15:28:12 UTC 2015
platform: debian-amd64

nginx -v
nginx version: nginx/1.8.0

1
নোট করুন যে 30 জুন, 2016 অবধি TLS 1.0 অপসারণ করা বাধ্যতামূলক নয়
মাইকেল হ্যাম্পটন

উত্তর:


12

এখানে সমস্যাটি Server name indicationটিএলএস আলোচনার অংশটি সংযোগের পরে নিজেই আলোচনার পরে করা হয়। এবং সংযোগ আলোচনার সময় প্রোটোকল আলোচিত হয়।

যদি আপনি সেই ভার্চুয়াল হোস্টটির সার্ভারের কোনও আইপি ঠিকানায় কনফিগার করেন তবে এর সাথে অন্য কোনও ভার্চুয়াল হোস্ট নেই তার জন্য কোনও টিএলএস ভি 1.0 কার্যকর করা সম্ভব নাও হতে পারে। সুতরাং nginx আইপি ঠিকানার ভিত্তিতে জানতে পারে যে কোনও টিএলএস ভি 1.0 অনুমোদিত নয়।


ধন্যবাদ। আমি এটির কোনও উপায়ই ধরে নিচ্ছি না কারণ এই মুহুর্তে এটি পরীক্ষা করার জন্য অতিরিক্ত আইপি নেই।
শন সি

1
Server Name Indicationটিএলএস এর অংশ ClientHello। এটি ক্লায়েন্ট কর্তৃক প্রেরিত প্রথম বার্তায় এবং পরে আলোচনার মাধ্যমে নয়। এটি আরও বেশি শোনাচ্ছে যেমন Nginx এর একটি ডিজাইনের ত্রুটি রয়েছে। দেখে মনে হচ্ছে এটি সংযোগটি গ্রহণ করে এবং তারপরে ভার্চুয়াল হোস্টের কাছে এগিয়ে যায় যদিও এটি সঠিক বা ভুল। পরিবর্তে, এনজিন্সের সার্ভারের নামটি বিশ্লেষণ করা উচিত, ভার্চুয়াল হোস্টের সাথে পরামর্শ করা উচিত এবং ভার্চুয়াল হোস্টের প্রয়োজনীয়তা পূরণ করতে ব্যর্থ হলে সংযোগটি প্রত্যাখ্যান করা উচিত। ডিজাইনের ত্রুটি সম্ভবত সিভিই উপযুক্ত কারণ টিএলএস 1.0 সময়ে সময়ে সন্দেহজনক। এটি স্পষ্টতই কিছু পরিস্থিতিতে সি ও এ লঙ্ঘন।

মন্তব্যের জন্য ধন্যবাদ. এটি আকর্ষণীয় যদি সত্যই এটি একটি বাস্তব ডিজাইনের ত্রুটি হয়।
টেরো কিলকেনেন

1
এটি কি নতুন এনগিনেক্স সংস্করণে 2019 এ অপরিবর্তিত রয়েছে?
রোবস্চ

18

আপনার "ডিফল্ট" এসএসএল আলোচনার টেম্পলেট হিসাবে আপনি যে সার্ভার ব্লকটি ব্যবহার করতে চান তা সন্ধান করুন। আপনার শোনার লাইনটি সন্ধান করুন

server {
    ...
    listen 443 ssl;
    ssl_protocols TLSv1.1 TLSv1.2;
    ...
}

এবং default_serverলাইনের শেষে যুক্ত করুন

server {
    ...
    listen 443 ssl default_server;
    ssl_protocols TLSv1.1 TLSv1.2;
    ...
}

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


তার মানে কি এই যে কেবলমাত্র একক জায়গা যেখানে এসএসএল_প্রোটোকলসের প্রভাব আছে? সার্ভার কনফিগারেশনের মধ্যে যে ডিফল্ট_সেভার ঘোষণা আছে? আলোচনার সময় এই কনফিগারেশনটি ব্যবহার করা হয়, অন্য কনফিগারেশনের মধ্যে এসএসএল_প্রোটোকলস সেটিংয়ের কোনও প্রভাব নেই?
রোবসচ

4

আমি এনজিএনএক্স সংস্করণ 1.8.1 তে টিএলএসভি 1 অক্ষম করেছি। আপনাকে ওপেনসেলটি 1.0.1g বা 1.0.1h সংস্করণে আপডেট করতে হবে। তারপরে কেবল এসএসএল_প্রোটোকলস নির্দেশিকা থেকে 'টিএলএসভি 1' সরান:

ssl_protocols TLSv1.1 TLSv1.2

তারপরে কমান্ডের মাধ্যমে টিএলএসভি 1 এর মাধ্যমে সংযোগটি পরীক্ষা করুন:

openssl s_client -tls1 -connect example.com:443 < /dev/null

আপনার এমন কিছু পাওয়া উচিত:

CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1474531027
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---

1
লোকেরা যখন কোনও হোস্ট করা পরিবেশে থাকে তখন সাধারণত ওপেনএসএসএল সংস্করণটি প্রতিস্থাপন করতে পারে না। সার্ভার অপারেটর সার্ভারের কনফিগারেশন নিয়ন্ত্রণ করে; ভার্চুয়াল সার্ভার ভাড়া করা ওয়েবসাইট অপারেটর নয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.