এসএসএল / টিএলএস সুরক্ষিত চ্যানেল - এসওএপি-র জন্য বিশ্বাসের সম্পর্ক স্থাপন করতে পারেনি


325

আমার কাছে একটি সাধারণ ওয়েব সার্ভিস কল রয়েছে যা সি # (২.০) তে লিখিত একটি ওয়েব সার্ভিসের জন্য ভিজুয়াল স্টুডিওর দ্বারা উত্পাদিত ওয়েব পরিষেবা প্রক্সিটির মাধ্যমে একটি নেট নেট (সি #) ২.০ উইন্ডোজ অ্যাপ্লিকেশন দ্বারা উত্পন্ন। এটি বেশ কয়েক বছর ধরে কাজ করেছে এবং এটি যেখানে চলছে সেখানে ডজন বা আরও অনেক জায়গায় চালিয়ে যাচ্ছে।

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

এসএসএল / টিএলএস সুরক্ষিত চ্যানেলের জন্য একটি বিশ্বাসের সম্পর্ক স্থাপন করতে পারেনি

ওয়েব পরিষেবার URL টি এসএসএল (https: //) ব্যবহার করে - তবে এটি দীর্ঘ অনেক দিন ধরে কাজ করে চলেছে (এবং এখনও অবিরত রয়েছে) অন্যান্য অনেক অবস্থান থেকে।

আমি কোথায় তাকান? এটি কি উইন্ডোজ এবং .NET এর মধ্যে সুরক্ষার সমস্যা হতে পারে যা এই ইনস্টলের জন্য অনন্য? যদি তা হয় তবে আমি কোথায় বিশ্বাসের সম্পর্ক স্থাপন করব? আমি শেষ!


আমার ক্ষেত্রে এই ত্রুটি আইপি অ্যাড্রেস ফরওয়ার্ডিংয়ের কারণে হয়েছিল।
সিজেএ

উত্তর:


166

চিন্তা (অতীতে ব্যথার ভিত্তিতে):

  • আপনার কি সার্ভারে ডিএনএস এবং লাইন অফ দর্শন আছে?
  • আপনি শংসাপত্র থেকে সঠিক নাম ব্যবহার করছেন?
  • শংসাপত্র এখনও বৈধ?
  • খারাপভাবে কনফিগার করা লোড ব্যালেন্সার মেসিং আপ করছে?
  • নতুন সার্ভার মেশিনটিতে কি সঠিকভাবে ঘড়ি সেট করা আছে (যেমন ইউটিসি সময় সঠিক হয় (স্থানীয় সময় উপেক্ষা করুন, এটি বেশিরভাগ ক্ষেত্রে অপ্রস্তুত)) - এটি অবশ্যই ডাব্লুসিএফের জন্য গুরুত্বপূর্ণ, তাই নিয়মিত এসওএপি প্রভাবিত করতে পারে?
  • একটি শংসাপত্র ট্রাস্ট চেইনের সমস্যা আছে? আপনি যদি সার্ভার থেকে সাবান পরিষেবাটিতে ব্রাউজ করেন তবে আপনি এসএসএল পেতে পারেন?
  • উপরের সাথে সম্পর্কিত - শংসাপত্রটি কি সঠিক জায়গায় ইনস্টল করা হয়েছে? (আপনার বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষের একটি অনুলিপি প্রয়োজন হতে পারে)
  • সার্ভারের মেশিন-স্তরের প্রক্সি সঠিকভাবে সেট করা আছে? (যা ব্যবহারকারীর প্রক্সি থেকে পৃথক); এক্সপি / 2003 এর জন্য প্রক্সিফেগ দেখুন (ভিস্তার ইত্যাদি সম্পর্কে নিশ্চিত নয়)

2
1) ওয়েব পরিষেবা ওয়েবে আছে। আমরা এটি ব্রাউজারের মাধ্যমে ব্রাউজ করতে পারি। 2) নতুন মেশিনটি কোনও সার্ভার নয় - এটি আমার অ্যাপ্লিকেশনটি চালিত একটি ডেস্কটপ যা এসওএপি পরিষেবাটির মাধ্যমে অর্ডার সম্পর্কিত তথ্য এবং আপলোডগুলি সংগ্রহ করে 3) হ্যাঁ, আমরা এটিতে ব্রাউজ করতে পারি। 4) এটি আমার কাছে নতুন: মেশিন স্তরের প্রক্সি?
রব শ্রিপসেমা

2
হ্যাঁ; কোড IE প্রক্সি সেটিংস ব্যবহার করে না; এটি একটি পৃথক স্টোর ব্যবহার করে ... এটি কনফিগার করা গুরুত্বপূর্ণ (আপনি যদি প্রক্সি ব্যবহার করছেন)। এক্সপিতে, আইই সেটিংসটি আমদানি করার জন্য সবচেয়ে সহজ বিকল্পটি হ'ল (আইআইআরসি) "প্রক্সিফেক-আই"।
মার্ক Gravell

11
ধন্যবাদ মার্ক। এটি আমাকে সহায়তা করেছিল এবং সমস্যাটি হ'ল সার্ভারের তৃতীয় পক্ষের সিএ দ্বারা স্বাক্ষরিত একটি শংসাপত্র ছিল যা আমি এখনও বিশ্বাস করি না। সমাধানটি হ'ল সেই সিএটিকে বিশ্বস্ত রুট সিএ তালিকায় যুক্ত করা।
পি.কম্পবেল

1
যে কম্পিউটারটিতে এই ব্যতিক্রম ছিল সেগুলি টাইম সার্ভারগুলি ব্যবহার করে সিস্টেম সময় সিঙ্ক করতে ব্যর্থ হয়েছিল। কাজ করার আগে আমাকে সময়টিতে ম্যানুয়ালি সিঙ্ক করতে হয়েছিল।
ক্রিস - হ্যাডডাক্স টেকনোলজিস

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

363

আপনি যে সার্ভারটিতে কল করছেন সেখানে SSL শংসাপত্রের সাথে কিছু সমস্যা রয়েছে তা নিম্নলিখিত স্নিপেটগুলি স্থির করবে। উদাহরণস্বরূপ, এটি স্ব-স্বাক্ষরিত হতে পারে বা শংসাপত্র এবং সার্ভারের মধ্যে হোস্টের নাম মেলে না।

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

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

//Trust all certificates
System.Net.ServicePointManager.ServerCertificateValidationCallback =
    ((sender, certificate, chain, sslPolicyErrors) => true);

// trust sender
System.Net.ServicePointManager.ServerCertificateValidationCallback
                = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));

// validate cert by calling a function
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);

// callback used to validate the certificate in an SSL conversation
private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors)
{
    bool result = cert.Subject.Contains("YourServerName");
    return result;
}

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

কলব্যাক সেট করা আমার জন্য .NET 4.5 এ কাজ করে তবে নেট না
..6

@ আমযাথ কোনও নির্দিষ্ট অনুরোধ সম্পূর্ণ হওয়ার পরে এটি পুনরায় সেট করার বিষয়ে কোনও পরামর্শ? কোনও ব্যক্তিকে কোনও অনিশ্চিত সার্ভারে একটি অনুরোধ করার প্রয়োজন হতে পারে, তারপরে জিনিসগুলি যেমন ছিল তেমনভাবে ফিরিয়ে দিন।
আইজাক লাইম্যান

1
@ আইসাক লাইম্যান: ServicePointManager.ServerCertificateValidationCallback = null;ডিফল্ট আচরণে ফিরে আসা উচিত।
মাইক চেম্বারলাইন

1
@ মাইকচেম্বারলাইন আপনার পরামর্শের সাথে একমাত্র সমস্যা হ'ল আপনি বিশ্বব্যাপী অ্যাপ্লিকেশন সেটিং নিয়ে কাজ করছেন বলে একযোগে অনুরোধগুলি অনিরাপদ হতে পারে।
আইজাক লাইম্যান

178

খুব সহজ "সমস্ত ধরুন" সমাধানটি হ'ল:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

সেবাস্তিয়ান-কাস্তালডি থেকে সমাধানটি আরও কিছুটা বিশদ।


21
আমি কেবল #If CONFIG = "Debug"এটি একটি বিবৃতিতে রেখেছি যাতে এটি কেবল তখনই সক্রিয় হয় যখন ডিবাগ মোডে থাকে। এটি দুর্দান্ত কাজ করে!
সিজেবার্থ

1
বিশদটি ভাল হতে পারে তবে দ্রুত, সংক্ষিপ্ত এবং সহজ কোডের লাইনের জন্যও কিছু বলার আছে। এই কোডটি সংক্ষিপ্ত এবং কৌশলটি করে।
অ্যালেন 1

এটি কি কেবল বর্তমান অ্যাকশনে কাজ করবে (যেমন এএসপি এমভিসি ব্যবহৃত হয়)? বা এটিএসপি.এনইটি অ্যাপ্লিকেশনটির জন্য ডিফল্ট আচরণ হিসাবে সেট করবে?
JeeShen লি

2
এটি কেবল পরীক্ষার উদ্দেশ্যে ব্যবহার করা উচিত, এই সমাধানটি কোনও শংসাপত্র, এমনকি অবৈধ / মেয়াদোত্তীর্ণেরও বিশ্বাস রাখে
শেনরন

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

35

আমি ব্যক্তিগতভাবে নিম্নলিখিত সমাধানটি সবচেয়ে পছন্দ করি:

using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

... তারপরে আপনার ত্রুটিটি পাওয়ার অনুরোধ করার আগে নিম্নলিখিতটি করুন

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

লুক এর সমাধানের সাথে পরামর্শ করার পরে এটি পাওয়া গেছে


4
এই পদ্ধতির সুরক্ষার সতর্কতার জন্য সেবাস্তিয়ান কাস্তালদি উত্তর দেখুন ।
এডওয়ার্ড ব্রে

উত্পাদনে এটি ব্যবহারের সুরক্ষা ঝুঁকি কী?
আমজাদ

@ আমজাদ সুরক্ষা ঝুঁকিটি হ'ল এটি এসএসএল / টিএলএস ব্যবহারের যে কোনও সুবিধাকে পুরোপুরি ছাপিয়ে যায়। সার্ভারটি পছন্দ মতো কোনও শংসাপত্র উপস্থাপন করতে পারে, এবং এই কোডটি ত্রুটিটিকে উপেক্ষা করবে
1800 তথ্য

18

আপনি যদি উইন্ডোজ 2003 ব্যবহার করেন তবে আপনি এটি ব্যবহার করে দেখতে পারেন:

মাইক্রোসফ্ট ম্যানেজমেন্ট কনসোল খুলুন (শুরু -> চালান -> মিমি.সি.সি.)

ফাইল নির্বাচন করুন -> স্ন্যাপ-ইন যুক্ত / সরান;

স্বতন্ত্র ট্যাবে, যুক্ত নির্বাচন করুন;

শংসাপত্রগুলির স্ন্যাপ-ইন চয়ন করুন, এবং অ্যাড ক্লিক করুন;

উইজার্ডে কম্পিউটার অ্যাকাউন্ট নির্বাচন করুন এবং তারপরে লোকাল কম্পিউটারটি নির্বাচন করুন। উইজার্ড শেষ করতে সমাপ্তি টিপুন;

অ্যাড / রিমুভ স্ন্যাপ-ইন ডায়ালগ বন্ধ করুন;

শংসাপত্রগুলিতে নেভিগেট করুন (স্থানীয় কম্পিউটার) এবং আমদানি করতে একটি স্টোর চয়ন করুন:

শংসাপত্র জারিকারী সংস্থার জন্য যদি আপনার কাছে রুট সিএ শংসাপত্র থাকে তবে বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষ নির্বাচন করুন;

আপনার যদি নিজেই সার্ভারের শংসাপত্র থাকে, তবে অন্যান্য ব্যক্তি চয়ন করুন

দোকানে ডান ক্লিক করুন এবং সমস্ত কার্য -> আমদানি চয়ন করুন

উইজার্ডটি অনুসরণ করুন এবং আপনার কাছে থাকা শংসাপত্র ফাইলটি সরবরাহ করুন;

এরপরে, কেবল আইআইএস পুনরায় চালু করুন এবং আবার ওয়েব পরিষেবাতে কল করার চেষ্টা করুন।

রেফারেন্স: http://www.outsystems.com/NetworkForums/ViewTopic.aspx?Topic=Web-Services :- মাউন্ট- নোট-স্টাবলিশ- ট্রাস্ট- রিলেশনশিপ- জন্য- এসএসএল / টিএলএস- ...


2
এটি আমার পথের অংশ হয়ে উঠল, তবে এটি কার্যকর করার জন্য আমার কাছে বিশ্বস্ত রুট শংসাপত্র কর্তৃপক্ষ বিভাগে শংসাপত্র থাকা দরকার। ব্লগস.এমএসডিএন
জ্যাকব

17

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

public static class Ssl
{
    private static readonly string[] TrustedHosts = new[] {
      "host1.domain.com", 
      "host2.domain.com"
    };

    public static void EnableTrustedHosts()
    {
      ServicePointManager.ServerCertificateValidationCallback = 
      (sender, certificate, chain, errors) =>
      {
        if (errors == SslPolicyErrors.None)
        {
          return true;
        }

        var request = sender as HttpWebRequest;
        if (request != null)
        {
          return TrustedHosts.Contains(request.RequestUri.Host);
        }

        return false;
      };
    }
}

তারপরে আপনার অ্যাপ্লিকেশন শুরু হওয়ার পরে কেবল এসএসএলকে সক্ষম করুন।


@ থেইলেম হ্যাঁ পুনরায় পড়া আমার মনে হয় আমি অবশ্যই প্রথমবার ভুল পড়েছি
শিব

উত্পাদনে সমস্ত শংসাপত্রের উপর নির্ভর করার সুরক্ষা ঝুঁকি কী?
আমজাদ

@ আমজাদ সুরক্ষা ঝুঁকিটি হ'ল ক্লায়েন্ট এবং সার্ভারের মধ্যে যে কেউ যোগাযোগের মাঝামাঝি সময়ে নিজেকে sertোকাতে পারে, তাদের নিজস্ব SSL শংসাপত্র ব্যবহার করতে এবং ক্লায়েন্ট এবং সার্ভারের মধ্যে সমস্ত ট্র্যাফিক পড়তে পারে। এটি কার্যকরভাবে এসএসএলকে অকার্যকর করে তোলে।
রব প্রসেস

আইএম যখন ডাব্লুএসডিএল থেকে ক্লাস তৈরি করতে ডাব্লুসিএফ অ্যাডন ব্যবহার করে তখন কাজ করা উচিত?
কামিল

7

লুক এই সম্পর্কে একটি খুব ভাল নিবন্ধ লিখেছেন .. বেশ সোজা এগিয়ে .. এই চেষ্টা করে দেখুন

লুক এর সমাধান

কারণ (তাঁর নিবন্ধের উদ্ধৃতি (বিয়োগ শোষক)) ".. উপরের কোডটিতে সমস্যা হ'ল যদি আপনার শংসাপত্রটি বৈধ না হয় তবে এটি কাজ করে না I কেন আমি এবং অবৈধ এসএসএল শংসাপত্র সহ একটি ওয়েব পৃষ্ঠায় পোস্ট করব? কারণ আমি সস্তা এবং আমার পরীক্ষার বাক্সে সার্টিফিকেটের জন্য ভেরিসাইন বা অন্য কোনওটি ** - * এর অর্থ প্রদানের মতো মনে হয় না তাই আমি নিজেই স্বাক্ষর করি the অনুরোধটি প্রেরণ করার পরে আমি আমার উপর একটি সুন্দর ব্যতিক্রম পেয়েছিলাম:

System.Net.WebException অন্তর্নিহিত সংযোগটি বন্ধ ছিল। রিমোট সার্ভারের সাথে বিশ্বাসের সম্পর্ক স্থাপন করতে পারেনি।

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


1
এই সমাধানটি। নেট 4.5 এর জন্য অবচিত। আপনি যদি কেবল সমস্ত শংসাপত্র গ্রহণ করতে চান, তবে নীচে নীচে সেবাস্তিয়ান ক্যাসালডি বা আমার উত্তর দেখুন।
রেমি

7

মাইক্রোসফ্টের এসএসএল ডায়াগনস্টিকস টুলটি সমস্যাটি সনাক্ত করতে সহায়তা করতে পারে।

আপডেটের লিংকটি এখনই ঠিক করা হয়েছে।


7
আজ (আগস্ট ২০১২) হিসাবে, সেই লিঙ্কটি এখন ভেঙে গেছে।
ashes999

ডাউনলোড ডিরেক্টরি অনুসন্ধান করেছেন এবং কোনও এসএসএল ডায়াগনস্টিকস সরঞ্জাম আর উপলব্ধ নেই। :(
SASS_Shooter

2
আমাদের লিঙ্কটি ঠিক করা যাক। আমি ভুল হলে
আমজথ

3

আমি এই সমস্যাটির মুখোমুখি হয়েছি। আমার রেজোলিউশনটি ছিল টাইম সার্ভারগুলিতে ম্যানুয়ালি সিঙ্ক করে সিস্টেমের সময় আপডেট করা। এটি করতে আপনি করতে পারেন:

  • টাস্ক বারের ঘড়িতে ডান ক্লিক করুন
  • নির্বাচন করা Adjust Date/Time
  • Internet Timeট্যাবটি নির্বাচন করুন
  • ক্লিক Change Settings
  • নির্বাচন করা Update Now

আমার ক্ষেত্রে এটি ভুলভাবে সিঙ্ক হচ্ছে তাই সঠিকভাবে আপডেট হওয়ার আগে আমাকে বেশ কয়েকবার ক্লিক করতে হয়েছিল। যদি এটি ভুলভাবে আপডেট হতে থাকে তবে আপনি এমনকি সার্ভারের ড্রপ-ডাউন থেকে আলাদা সময় সার্ভার ব্যবহার করে দেখতে পারেন।


পবিত্র গা। এই সঠিক জিনিস মধ্যে ধাক্কা। সহজ সমাধানের জন্য ধন্যবাদ!
TheGerm

3

এটা চেষ্টা কর:

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

লক্ষ্য করুন যে আপনাকে কমপক্ষে 4.5 .NET ফ্রেমওয়ার্কের সাথে কাজ করতে হবে


3

.NETইন্টারনেট এক্সপ্লোরারটিতে অ্যাপটিতে আমার একই সমস্যা ছিল ।

আমি বিশ্বস্ত সম্পাদকদের শংসাপত্রগুলিতে শংসাপত্র (আমার ক্ষেত্রে ভেরি সিগন ক্লাস 3 শংসাপত্র) যুক্ত করার সমস্যাটি সমাধান করেছি।

Go to Internet Options-> Content -> Publishers and import it

আপনি যদি তা থেকে রফতানি করেন তবে আপনি শংসাপত্রটি পেতে পারেন:

Internet Options-> Content -> Certificates -> Intermediate Certification Authorities -> VeriSign Class 3 Public Primary Certification Authority - G5

ধন্যবাদ


1

Url এর মতো একটি ওয়েবসারভারের বিরুদ্ধে চলতে আমার এই ত্রুটি হয়েছিল:

a.b.domain.com

তবে এর জন্য কোনও শংসাপত্র নেই, তাই আমি একটি ডিএনএস কল পেয়েছি

a_b.domain.com

গুগলে এটি শীর্ষে আসার পরে কেবল এই সমাধানটিতে ইঙ্গিত দেওয়া হচ্ছে।


আমার ক্ষেত্রে, ওয়েবসাইটটি একটি ওয়াইল্ডকার্ড এসএসএল শংসাপত্রের (* .abcd.com) অধীনে কনফিগার করা হয়েছিল। ওয়েবসাইট বাইন্ডিংটি কনফিগার করার সময় xyz-abcd.com এর মতো ছিল যা সমস্যার কারণ ছিল।
শ্রীশ্রী

1

যারা ভিএস ক্লায়েন্ট পক্ষের মাধ্যমে এই সমস্যাটি নিয়ে আসছে তাদের সফলভাবে একটি পরিষেবা রেফারেন্স যুক্ত হয়েছে এবং প্রথম কলটি কার্যকর করার চেষ্টা করার পরে এই ব্যতিক্রমটি পেয়েছে: "অন্তর্নিহিত সংযোগটি বন্ধ ছিল: এসএসএল / টিএলএস সুরক্ষিত চ্যানেলের জন্য বিশ্বাসের সম্পর্ক স্থাপন করতে পারেনি" যদি আপনি আইপি ঠিকানার সাথে একটি শেষ পয়েন্ট ইউআরএল (আমার ক্ষেত্রে যেমন) ব্যবহার করছেন এবং এই ব্যতিক্রমটি পেয়েছেন, তবে আপনাকে সম্ভবত এই পদক্ষেপগুলি সম্পাদন করে পরিষেবা রেফারেন্স যুক্ত করতে হবে:

  • ইন্টারনেট এক্সপ্লোরারে শেষ পয়েন্ট URL খুলুন।
  • শংসাপত্র ত্রুটিতে ক্লিক করুন (ঠিকানা বারে লাল আইকন)
  • ভিউ শংসাপত্রগুলি ক্লিক করুন।
  • জারি করা: "নাম" ধরুন এবং আইপি ঠিকানা বা আমরা যে নামটি ব্যবহার করছিলাম তা প্রতিস্থাপন করুন এবং এই "নাম" এর জন্য ত্রুটি পেয়েছি।

আবার চেষ্টা করুন :). ধন্যবাদ


0

আমার ক্ষেত্রে আমি এসএসএল পরীক্ষা করার চেষ্টা করছিলাম আইআইএস 7 ব্যবহার করে আমার ভিজ্যুয়াল স্টুডিও পরিবেশে ।

এটি এটিকে কাজে লাগানোর জন্য আমি শেষ করেছি:

  • আইআইএসের ডানদিকে 'বাইন্ডিংস ...' বিভাগে আমার সাইটের অধীনে, আমাকে 443 বন্দরটিতে 'https' বাইন্ডিং যুক্ত করতে হবে এবং "আইআইএস এক্সপ্রেস ডেভেলপমেন্ট সার্টিফিকেট" নির্বাচন করতে হয়েছিল।

  • ডানদিকে 'অ্যাডভান্সড সেটিংস ...' বিভাগে আমার সাইটের অধীনে আমাকে "এনএলবিড প্রোটোকলগুলি" "HTTP" থেকে "https" তে পরিবর্তন করতে হয়েছিল।

  • 'এসএসএল সেটিংস' আইকনের অধীনে আমি ক্লায়েন্টের শংসাপত্রগুলির জন্য 'গ্রহণ করুন' নির্বাচন করেছি।

  • তারপরে আমাকে অ্যাপ পুলটি পুনরায় ব্যবহার করতে হয়েছিল।

  • আমি আমার ব্যক্তিগত দোকানে এমএমসি.এক্সই ব্যবহার করে স্থানীয় হোস্ট শংসাপত্রটি আমদানি করতে হয়েছিল।

আমার web.configফাইলটি ইতিমধ্যে সঠিকভাবে কনফিগার করা হয়েছে, সুতরাং উপরের সমস্তগুলি সাজানোর পরে, আমি আমার পরীক্ষা চালিয়ে যেতে সক্ষম হয়েছি।


কিভাবে আপনার ওয়েব কনফিগ কনফিগার করা হয়েছে?
চজত

@ চ্যাজটএনএন আমি আপনাকে বলতে পারি না, এটি কিছুক্ষণ আগে ছিল, তবে এটি একটি বেসিক HTTP বাইন্ডিং সেট আপ হত, আমি সাধারণত ওয়েব সার্ভিস ক্লায়েন্টের তথ্যের জন্য কনফিগার তথ্য উত্পন্ন করতে svcutil ব্যবহার করি।
পপো

0

আমার সলিউশন (ভিবি.নেট, এই অ্যাপ্লিকেশনটির "স্টেজিং" (ইউএটি) সংস্করণটির "স্টেজিং" শংসাপত্রের সাথে কাজ করা দরকার তবে অনুরোধগুলি লাইভ সাইটে একবার প্রভাবিত না করে):

    ...
        Dim url As String = ConfigurationManager.AppSettings("APIURL") & "token"
        If url.ToLower().Contains("staging") Then
           System.Net.ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
        End If
    ...

    Private  Function AcceptAllCertifications(ByVal sender As Object, ByVal certification As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslPolicyErrors As System.Net.Security.SslPolicyErrors) As Boolean
        Return True
    End Function

-3

যদি খারাপ সার্টিফেট কাজ না করে, যখন সার্ভারসर्টিফিটভিডিশনক্যালব্যাক সত্য ফিরে আসে; আমার সার্ভারকার্টিফিটভ্যালিডেশনক্যালব্যাক কোড:

ServicePointManager.ServerCertificateValidationCallback += delegate
{
    LogWriter.LogInfo("Проверка сертификата отключена, на уровне ServerCertificateValidationCallback");
    return true;
};

আমার কোড যা সার্ভারের্টিফিকেটভালিডেশনক্যালব্যাক কার্যকর করে:

     if (!(ServicePointManager.CertificatePolicy is CertificateValidation))
    {
        CertificateValidation certValidate = new CertificateValidation();
        certValidate.ValidatingError += new CertificateValidation.ValidateCertificateEventHandler(this.OnValidateCertificateError);
        ServicePointManager.CertificatePolicy = certValidate;
    }

অনভিডিয়েট সার্টিফিকেট ইরর ফাংশন:

private void OnValidateCertificateError(object sender, CertificateValidationEventArgs e)
{
    string msg = string.Format(Strings.OnValidateCertificateError, e.Request.RequestUri, e.Certificate.GetName(), e.Problem, new Win32Exception(e.Problem).Message);
    LogWriter.LogError(msg);
    //Message.ShowError(msg);
}

আমি শংসাপত্রভালিডেশন কোড এবং সার্ভারের্টিফিকেটভিডিয়েশনক্যালব্যাকটি খুব ভালভাবে চলমান অক্ষম করেছি


আপনার কোনও শংসাপত্রের বৈধতা অক্ষম করা উচিত নয়। পরিবর্তে, ব্যর্থতা বৈধতা যা সমস্যা সমাধান করুন।
ড্যান

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