سؤال

وأنا باستخدام هذا الرمز، لتقديم طلب إلى URL معينة:

private static string GetWebRequestContent(string url)
{
  string sid = String.Empty;

  HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
  req.KeepAlive = false;

  using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
  {
    using (StreamReader sr = new StreamReader(res.GetResponseStream()))
    {
      sid = sr.ReadToEnd().Trim();
    }
  }

  return sid;
}

وأنا استخدامه لاختبار stickyness من موازن تحميل العمل، مع 3 خوادم وراء ذلك. أنهم جميعا لديهم ملف HTM ثابت يسمى sid.htm، حيث تتم كتابة الرقم خادم الخادم.

لURL مع HTTP هذا يعمل بشكل جيد. ولكن مع HTTPS أنها لا تعمل. أحصل على هذا الاستثناء:

<اقتباس فقرة>   

وتم إحباط الطلب: لا يمكن إنشاء SSL / TLS قناة آمنة

في هذه اللحظة، لدي خوادم فقط 2 وراء WLB واحد من تلقاء نفسها مع IP العام وراء جدار حماية. طلبات HTTPS يعمل بشكل جيد إذا كنت ضرب خادم مستقل - ولكن عندما ضرب WLB أحصل على الخطأ أعلاه

وشيء واحد: من أجل التبديل بين ضرب خادم واحد، وWLB يمكنني استخدام ملف المضيفين بلدي. سجلات DNS للحصول على نقاط نطاقي إلى خادم واحد في الوقت الراهن. لذلك أضع رقما قياسيا في ملف مضيفي لضرب WLB. هذا لا ينبغي أن يكون مما تسبب في مشاكل ...

<القوي> سؤالي : في أي SSL أوراق اعتماد / شهادات لا للHttpWebRequest استخدام؟ إذا كان يستخدم 40 بت DES أو 56 بت DES، وهذا هو السبب، لأن تلك هي المعوقين في WLB. ولكن هذه الشهادات لم تستخدم في المتصفحات منذ IE3 ونتسكيب 1 و 2.

هل كانت مفيدة؟

المحلول

وهو يعمل تماما في متصفحي.

ولقد وجدت الحل دقيقة 1 بعد نشرت لي السؤال التالي:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

وهذا يعني أن HttpWebRequest كان يستخدم TLS 1.0 - أنا لا أعرف، ولكن أفترض أن 40 بت DES أو 56 بت DES، الذي تم تعطيل في WLB

نصائح أخرى

ووsmothing هناك قد ترغب في النظر مع موازن التحميل. تلك التي نستخدمها قدما HTTPS حركة المرور آمن إلى خوادم وراء ذلك على اتصال HTTP غير آمن. العلاقة بين موازن التحميل والمتصفح لا يزال آمن ولكن ليست هناك حاجة للرئيس لأكثر من بروتوكول آمن بين موازن وخوادم الويب.

ولقد أردنا للكشف عن اتصال آمن على خوادم الويب لدينا ولكن في البداية لم ير اتصال HTTPS. وذلك عندما أدركنا حركة المرور خلف موازن كان كل بعدم الأمان. من المنطقي بمجرد أن يعرف.

ما نقوم به الآن هو إلى الأمام حركة آمن حيز موازن (منفذ 443) إلى ميناء 81 (altenative HTTP) ثم توجيه كل حركة المرور HTTP العادي (الموانئ 80 و 81) إلى المنفذ 80. ثم نتمكن من التحقق من الميناء على خادم الويب وتعرف 80 غير آمنة و 81 حركة مرور آمن بين المتصفح وموازن على الرغم من حقيقة في جميع HTTP في خادم الويب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top