TLS 1.2 ব্যবহার করার জন্য নেট। ওয়েব পরিষেবা আপডেট করুন


99

আমার .NET ওয়েব পরিষেবা থেকে অন্য কোনও টিএলএসকে জোর করতে চলেছে এমন সাথে সংযোগ স্থাপনের জন্য আমাকে টিএলএস 1.2 ব্যবহার করতে হবে। আমি এমন একটি সংস্থান পেয়েছি যা বলেছিল। নেট 4.6 টিএলএস 1.2 ডিফল্টরূপে ব্যবহার করে যাতে সহজ সমাধানের মতো মনে হয়। আমি সার্ভারে .NET ফ্রেমওয়ার্কটি আপডেট করে আবার শুরু করেছি। আইআইএসে আমি .NET 4.6 ব্যবহার করে একটি অ্যাপ্লিকেশন পুল তৈরির চেষ্টা করেছি তবে 4.0 ছিল একমাত্র বিকল্প। তারপরে আমি এমন কিছু কিছু পেয়েছি যা বলেছে যে এটি এখনও 4.0 বলবে কারণ 4.6 .NET 4.0 এ "স্থানে" আপডেট। তাই আমি ভেবেছিলাম সম্ভবত আমার কাজ শেষ হয়েছে। যাইহোক আমি কোনও ত্রুটিযুক্ত পৃষ্ঠায় যা অপ্রাসঙ্গিক কারণে পেয়েছি, এটি বলেছিল Microsoft .NET Framework Version:4.0.30319তাই মনে হয় আমি সফলভাবে আপগ্রেড করিনি। আমার অ্যাপ্লিকেশন পুল .NET 4.6 ব্যবহার করছে কিনা তা নিশ্চিত করার জন্য কোনও নির্দেশক বা আরও সাধারণভাবে কীভাবে টিএলএস 1.2 সক্ষম করবেন?


4
আমি বিশ্বাস করি TLS12 অবশ্যই সার্ভারে সক্ষম করা উচিত। support.quovadisglobal.com/kb/a433/…
lcryder

4
ডাউনভোটস কেন?
nasch

উত্তর:


140

আমরা আসলে TLS 1.2 কে অনুমোদনের জন্য একটি নেট নেট সার্ভিসকে 4.6 এ আপগ্রেড করেছি।

আর্টেম যা বলছে তা হ'ল আমাদের প্রথম পদক্ষেপ। আমরা ওয়েব পরিষেবাদির কাঠামোটি 4.6 এ পুনরায় সংকলিত করেছি এবং আমরা টিএলএস 1.2 সক্ষম করতে রেজিস্ট্রি কীটি পরিবর্তন করার চেষ্টা করেছি, যদিও এটি কার্যকর হয়নি: সংযোগটি এখনও টিএলএস 1.0 এ ছিল। এছাড়াও, আমরা মেশিনে এসএলএল 3.0, টিএলএস 1.0 বা টিএলএস 1.1 বাতিল করতে চাইনি: অন্যান্য ওয়েব পরিষেবাদি এটি ব্যবহার করতে পারে; আমরা রেজিস্ট্রিতে আমাদের পরিবর্তনগুলি রোল-ব্যাক করেছি।

আইআইএসকে বলার জন্য আমরা আসলে ওয়েব.কনফিগ ফাইলগুলি পরিবর্তন করেছি: "ওহে, আমাকে 4.6 এ চালান দয়া করে"।

নেট 4..6-এ আমরা ওয়েবকনফিগ + পুনঃসংশোধনে যুক্ত হওয়া পরিবর্তনগুলি এখানে:

<system.web>
    <compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->

    <!--Added this httpRuntime -->
    <httpRuntime targetFramework="4.6" />

    <authentication mode="Windows"/>
    <pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>

এবং সংযোগটি টিএলএস ১.২ এ পরিবর্তিত হয়েছে, কারণ আইআইএস এখন ওয়েব সার্ভিসটি ৪.6 এ চালিয়ে যাচ্ছে (স্পষ্টভাবে বলা হয়েছে) এবং ৪.6 ডিফল্টভাবে টিএলএস ১.২ ব্যবহার করছে।


4
আমরা গবেষণার জন্য যে ডকুমেন্টেশন ব্যবহার করেছি তা এখানে রয়েছে: এইচটিটিপিআরটাইম , রেন্ডারিং
এটিয়েন

4
আমি এটি বের করেছিলাম - আমি এইচটিটিপিএসের জন্য অনুরোধ করছিলাম না। আমি এটি স্থির করার পরে, এটি কাজ করে।
nasch

4
সংকলনটি ৪.6 এ পরিবর্তন করা এবং httpRunটাইম ৪.6 যোগ করা আমাদের ক্ষেত্রে যথেষ্ট ছিল, সমাধানের জন্য ধন্যবাদ!
ক্রিলোভিচ

4
এটি সম্পূর্ণ সঠিক উত্তর। সবেমাত্র এর মধ্য দিয়ে গেছে এটি সম্পর্কে একটি ব্লগ পোস্ট এখানে রয়েছে: blog.thelevelup.com/pci-security-is-your-restटका- প্রস্তুত এবং একটি গিটহাব প্রকল্প যা এটি করে: github.com/TheLevelUp/pos-tls-patcher
user24601


88

আপনি নিজের ওয়েব পরিষেবা ক্লায়েন্টকে ইনস্ট্যান্ট করার আগে নিম্নলিখিত কোডটি যুক্ত করুন:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

অথবা টিএলএস 1.1 এবং পূর্বের সাথে পিছিয়ে সামঞ্জস্যের জন্য:

System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; 

4
হ্যাঁ আমি ইতিমধ্যে এটি করছি, তবে ত্রুটি বার্তাটি এখনও .NET 4.0 নির্দেশ করে।
nasch

12
এটি আপনার সিএলআর সংস্করণ। । নেট সিএলআর এর দুটি সংস্করণ, 2.0 এবং 4.0 রয়েছে। আইআইএস-এ আপনি ফ্রেমওয়ার্ক সংস্করণ নয়, সিএলআর সংস্করণ নির্দিষ্ট করেছেন। আইআইএস আপনাকে বলবে না। নেট 4.6 কারণ এটি এর বিষয়ে চিন্তা করে না। আপনি যদি 4.6 ব্যবহার করে সংকলন করেন, তবে আপনি 4.6 ব্যবহার করছেন।
অ্যামি

4
TLS 1.2 সমর্থন .NET 4.5 থেকে সমর্থিত
গিলবার্তো আলেকজান্দ্রে

4
এই ক্ষেত্রে, | = জাস্ট = এর চেয়ে উচ্চতর। এগুলি বাইনারি পতাকা, অপ্রয়োজনীয়ভাবে সমস্ত কিছু ওভাররাইট করবেন না।
ইজজি

4
@ জোহানউউ - উপরে ইজির মন্তব্যটি দয়া করে নোট করুন। আপনার কোড .NET কে এইচটিটিপিএস সংস্থানগুলিতে সংযোগ করার সময় স্পষ্টতই টিএলএস 1.2 ব্যবহার করতে বলেছে tells উদাহরণস্বরূপ, যদি কোনও সার্ভারের কেবল টিএলএস 1.1 থাকে তবে আপনার কোডটি এটি সংযোগ স্থাপন থেকে বিরত করবে কারণ এটি কেবলমাত্র টিএলএস 1.2 ব্যবহার করে। ক্লায়েন্ট এবং সার্ভার কোন প্রোটোকল ব্যবহার করবেন তা নিয়ে আলাপ-আলোচনা করার সময় আপনার কোডটি "আপনার বিকল্প হিসাবে টিএলএস 1.2 ব্যবহার করার চেষ্টা করুন" বলার জন্য আপনার ব্যবহার করা উচিত।
ডন চ্যাডল

27

আপনি যদি ব্যবহার করছেন। 4.5 এর আগে নেট আপনার এনামগুলিতে Tls12 থাকবে না তাই রাষ্ট্রটি এখানে স্পষ্টভাবে উল্লেখ করা হয়েছে

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;

17

তিনটি পদক্ষেপের প্রয়োজন:

  1. স্পষ্টভাবে SSL2.0, TLS1.0, TLS1.1 আপনার সার্ভার মেশিনে যুক্ত করে Enabled=0এবং DisabledByDefault=1আপনার রেজিস্ট্রিতে নিষিদ্ধ হিসাবে চিহ্নিত করুন (পুরো পথটি HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols)। বিশদ জন্য পর্দা দেখুন রেজিস্ট্রি

  2. TLS1.21 থেকে পদক্ষেপগুলি অনুসরণ করে স্পষ্টভাবে সক্ষম করুন Just কেবলমাত্র Enabled=1এবং DisabledByDefault=0যথাক্রমে ব্যবহার করুন ।

দ্রষ্টব্য: সার্ভার সংস্করণ যাচাই করুন: প্রোটোকল Windows Server 2003সমর্থন করে নাTLS 1.2

  1. TLS1.2উপরে উল্লিখিত @ জন উ এর মত কেবল অ্যাপ পর্যায়ে সক্ষম করুন।

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

আশা করি এই গাইড সাহায্য করবে।

@ সুব্বু উল্লিখিত হিসাবে আপডেট করুন : অফিসিয়াল গাইড


4
অফিসিয়াল রেফারেন্স - technet.microsoft.com/en-us/library/...
Subbu

হাই @ আর্টেমের পরে টিএলএস যোগ করার পরে কি আমার সার্ভারটি পুনরায় চালু করতে হবে?
সিম্বা

@ সিম্বা আপনি সম্ভবত এটি সমাধান করেছেন, তবে এখনই এটি করা আমার সার্ভারটি পুনরায় চালু করার দরকার হয়নি।
ম্যাট এন।

5

আমার জন্য নীচে কাজ করেছেন:

পদক্ষেপ 1: অ্যাপ্লিকেশন সার্ভারে https://www.microsoft.com/en-us/download/details.aspx?id=48137 থেকে ওয়েব ইনস্টলারটি এক্সেকে ডাউনলোড এবং ইনস্টল করা হয়েছে । ইনস্টলেশন সমাপ্তির পরে অ্যাপ্লিকেশন সার্ভারটি পুনরায় বুট করে।

পদক্ষেপ 2: ওয়েবকনফাইগের নীচে পরিবর্তনগুলি যুক্ত করা হয়েছে

<system.web>
    <compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->
    <!--Added this httpRuntime -->
    <httpRuntime targetFramework="4.6" />
</system.web>

ধাপ 3: "ধাপে 1 এবং 2 পরে, এটি একটি ত্রুটির দেন । ওয়েবফর্মগুলি UnobtrusiveValidationMode 'jQuery' এর জন্য একটি ScriptResourceMapping প্রয়োজন দয়া করে একটি ScriptResourceMapping নামে jQuery (কেস সংবেদনশীল) যোগ " এবং এই ত্রুটি সমাধান করতে, আমি কী নিচে যোগ appsettings আমার ওয়েবকনফাইগ ফাইলে

<appSettings>
      <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

এইচডিআরটাইম টার্গেট ফ্রেমওয়ার্ক যুক্ত করা আমার পক্ষে কাজ করেছিল।
রেডম্যান

0

পাওয়ারবিবি এম্বেডের জন্য টিএলএস 1.2 প্রয়োজন।

এতিয়েন ফাচারের উপরের উত্তরটি আপনার সমাধান। উপরের উত্তরের দ্রুত লিঙ্ক ... উপরের উত্তরের দ্রুত লিঙ্ক ... ( https://stackoverflow.com/a/45442874 )

পাওয়ারবিআইয়ের টিএলএস 1.2 জুন 2020 দরকার - এটি আপনার উত্তর - আপনি ফ্রেমওয়ার্ক থেকে সন্ধান করছেন এমন ডিফল্ট টিএলএস 1.2 আচরণকে বাধ্য করার জন্য আপনার আইআইএস রানটাইমটি 4.6 পর্যন্ত পেতে বাধ্য করার কথা বিবেচনা করুন। উপরের উত্তরটি আপনাকে একটি কনফিগার পরিবর্তনের সমাধান দেয়।

লক্ষণগুলি : মাইক্রোসফ্ট পাওয়ার বিবিআই এম্বেডযুক্ত জোর করে বন্ধ প্রত্যাখ্যাত টিসিপি / আইপি সংযোগ যা আপনার সিস্টেমে হঠাৎ করে দেখা দেয়।

এই পাওয়ারবিআই কলগুলি কেবল একটি হার্ড টিসিপি / আইপি দিয়ে কাজ করা বন্ধ করে ফায়ারওয়ালের মতো বন্ধ ত্রুটি কোনও সংযোগকে ব্লক করবে। সাধারণত লেখক পদক্ষেপগুলি কাজ করে - আপনি যখন নির্দিষ্ট কর্মক্ষেত্রের জন্য পরিষেবাটি আঘাত করেন এবং আইডি এর প্রতিবেদন ব্যর্থ হয় তখনই এটি ঘটে।

এটি টিএলএস 1.2 সম্পর্কে মাইক্রোসফ্ট পাওয়ার বিবিআইয়ের 2020 নোট

পাওয়ারবাইক্লিয়েন্ট

পদ্ধতি যে এই সমস্যা দেখায়

গেটআরপোর্টসআইএনআরগ্রুপএন্সিঙ্ক গেটেরেপোর্টসআইএনগ্রুপএসএডমিনঅ্যাসেন্স গেটেরেপোর্টসসিস্ক গেটেরপোর্টসসএডমিনঅ্যাসেন্স মাইক্রোসফট

লোকেরা এটি খুঁজে পেতে সহায়তা করার জন্য অনুসন্ধান ত্রুটি শর্তাদি: System.Net.Http.HttpRequestException: অনুরোধটি প্রেরণ করার সময় একটি ত্রুটি ঘটেছে System.Net.WebException: অন্তর্নিহিত সংযোগটি বন্ধ ছিল: একটি প্রেরণে একটি অপ্রত্যাশিত ত্রুটি ঘটেছে। System.IO.IOException: পরিবহন সংযোগ থেকে ডেটা পড়তে অক্ষম: একটি বিদ্যমান সংযোগ জোর করে দূরবর্তী হোস্ট দ্বারা বন্ধ করা হয়েছিল।

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