আইআইএস সহ একই সার্ভারে এসএনআই এবং ওয়াইল্ডকার্ড এসএসএল শংসাপত্রগুলি


12

আমি এমন একটি ওয়েবসাইট হোস্ট করতে চাই যা আইআইএস এবং এসএসএলের সাথে কেবলমাত্র দ্বিতীয় স্তরের ডোমেনের (যেমন ডোমেন 2.com, ডোমেইন 3.com) অধীনে থাকা একাধিক ওয়েবসাইটের সাথে সাবডোমেনগুলি (যেমন সাব.ডোমেন.কম) শুনতে হবে।

সাবডোমেনগুলির সাথে ওয়েবসাইটের জন্য আমার কাছে একটি ওয়াইল্ডকার্ড শংসাপত্র রয়েছে (* .domain.com) এবং অন্য সাইটগুলির জন্য বিশেষত আমার কাছে শংসাপত্রও রয়েছে (ডোমেন 2 ডটকম এবং ডোমেন 3 ডটকম)।

এই জাতীয় সেটটি কি একই আইআইএস-এ হোস্ট করা যেতে পারে (যদি এটি একটি অ্যাজুরে ক্লাউড সার্ভিসের ওয়েব ভূমিকাতে থাকে)?

সমস্যাটি হ'ল টাইটোবএফ এখানে ঠিক কী ব্যাখ্যা করেছে : তাত্ত্বিকভাবে এর জন্য আমাদের ডোমেন 2 / 3.com এর জন্য নির্দিষ্ট হোস্ট এবং তারপরে * .domain.com এর জন্য একটি হোস্টের সাথে একটি ক্যাচ-সমস্ত ওয়েবসাইটের সাথে এসএনআই ব্যবহার করে বাইন্ডিংগুলি দরকার। তবে বাস্তবে বাইন্ডিংগুলি কীভাবে সেট আপ করা হয় তা বিবেচনা না করে যদি ক্যাচ-অল ওয়েবসাইট এটিতে থাকে তবে এটি ডোমেন 2 / 3.com- এ সমস্ত অনুরোধগুলি গ্রহণ করবে (যদিও এটি সম্ভবত শেষ সমাধান হিসাবে মিলছে)।

কোন সাহায্য প্রশংসা করা হবে।

এখনও অমীমাংসিত

দুর্ভাগ্যক্রমে আমি এটি সমাধান করতে পারিনি: এটি কেবলমাত্র জটিল পদ্ধতিতে সমাধানযোগ্য বলে মনে হয়, যেমন একটি সফ্টওয়্যার তৈরি করা যা আইআইএস এবং ইন্টারনেটের মধ্যে বসে থাকে (সুতরাং মূলত একটি ফায়ারওয়াল) এবং আগত অনুরোধগুলিকে সংশোধন করে (এসএসএল হ্যান্ডশেক হওয়ার আগে)! ) দৃশ্যের অনুমতি দিতে। আমি সম্পূর্ণরূপে আত্মবিশ্বাসী যে আইআইএসের মাধ্যমে এটি সম্ভব নয়, তা দেশীয় মডিউল থেকেও নয়।

আমাকে স্পষ্ট করতে হবে: আমরা অ্যাজুরে ক্লাউড পরিষেবাদি ব্যবহার করি, সুতরাং আমাদের আরও বাধা রয়েছে যে আমরা একাধিক আইপি ঠিকানা ব্যবহার করতে পারি না (দেখুন: http://feedback.azure.com/forums/169386- ক্লাউড-সার্ভিসেস- ওয়েবে- এবং -কর্মী-ভূমিকা / পরামর্শ / 1259311-একাধিক-এসএসএল-এবং-ডোমেন-টু ওয়ান-অ্যাপ্লিকেশন )। আপনি যদি আপনার সার্ভারে একাধিক আইপি নির্দেশ করতে পারেন তবে আপনার কাছে এই সমস্যা নেই কারণ আপনিও আইপি-র জন্য বাইন্ডিং তৈরি করতে পারেন এবং সেগুলি একসাথে ওয়াইল্ডকার্ড বাইন্ডিংয়ের কাজ করবে। আরও সুনির্দিষ্টভাবে, ওয়াইল্ডকার্ড সাইটের জন্য আপনার আইপি দরকার (তবে এখন আপনার আলাদা আইপি রয়েছে বলে আপনাকে কোনও ওয়াইল্ডকার্ড হোস্ট নেম বাইন্ডিং কনফিগার করতে হবে না) এবং অন্য সমস্ত নন-ওয়াইল্ডকার্ডের জন্য অন্য আইপি দরকার।

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

এখন অ-কার্যকারী বাঁধাই

প্রথম https বাইন্ডিংটি একটি সাধারণ শংসাপত্র সহ এসএনআই, দ্বিতীয়টি ওয়াইল্ডকার্ড শংসাপত্র সহ, এসএনআই নয়।

Http সাইটটি কাজ করে, পাশাপাশি এসএনআই https সাইট, তবে ওয়াইল্ডকার্ড বাইন্ডিং সহ একটিটি "HTTP ত্রুটি 503 দেয় The পরিষেবাটি অনুপলব্ধ।" (কোনও তথ্য ছাড়া, কোনও অনুরোধ ট্র্যাকিং বা ইভেন্ট লগ এন্ট্রি ব্যর্থ)। বাইন্ডিং

অবশেষে এটি মূলত কাজ করা

ETW ট্রেস লগটিকে টোবিয়াস বর্ণিত মত সক্ষম করে দেখানো হয়েছে যে মূল ত্রুটিটি নিম্নলিখিত ছিল:

অনুরোধ (অনুরোধ ID 0xF500000080000008) কারণে কারণে প্রত্যাখ্যান করা হয়েছে: UrlGroupLookupFailed।

আমি যতদূর বুঝতে পেরেছি এর অর্থ এই যে http.sys অনুরোধটি কোনও উপলভ্য শেষ পয়েন্টে যেতে সক্ষম হয় না।

নিবন্ধভুক্ত শেষ পয়েন্টগুলি পরীক্ষা করে netsh http show urlaclদেখা গেছে যে 443 বন্দরের জন্য সত্যিই নিবন্ধিত ছিল:

Reserved URL            : https://IP:443/
    User: NT AUTHORITY\NETWORK SERVICE
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;NS)

netsh http delete urlacl url=https://IP:443/শেষ পর্যন্ত আমার এসএসএল বাইন্ডিং সক্ষম করে এটি অপসারণ করা ।


একাধিক আইপি বা অ-মানক পোর্ট অবলম্বন না করে আপনার এসআইএনআই ব্যবহার করে আইআইএসে একেবারে সক্ষম হওয়া উচিত।
জো স্নাইডারম্যান

আপনার মানে আইআইএস এর সমর্থন করা উচিত? আমি রাজী :-).
পাইডোন

আমি আপনার সাথে পুরোপুরি একমত, পাইডোন। আমি সত্যিই হতাশ হয়েছি যে আইআইএস (বা আরও স্পষ্ট করে বলতে গেলে http.sys) একটি ডিফল্ট এসএসএল শংসাপত্র হিসাবে একটি ওয়াইল্ডকার্ড শংসাপত্র এবং একচেটিয়া হিসাবে এসএনআই সহ একাধিক কংক্রিট শংসাপত্রের সমন্বয়কে সমর্থন করে না। আপনি এখানে দেখতে পারেন হিসাবে সমস্যাটি 2012 সাল থেকে সুপরিচিত: forums.iis.net/t/1192170.aspx । আমি কেবল মাইক্রোসফ্টকে একটি ইমেল লিখেছি এবং শীঘ্রই প্রতিক্রিয়া পাব বলে আশা করি।
টোবিয়াস জে।

ধন্যবাদ টোবিয়াস মাইক্রোসফ্ট জবাব দেওয়ার পরে দয়া করে এখানে ফিরে আসুন।
পাইডোন

2
সম্ভবত http.sys অনুরোধটি প্রত্যাখ্যান করছে তাই কোনও ব্যর্থ অনুরোধ আইআইএস-এ লগ ইন করা হয়নি। একটি http.sys ETW ট্রেস লগ তৈরি করুন: 1) ট্রেস লগ শুরু করুন। চালান: logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets2) 503 অনুরোধ করুন 3) ট্রেস লগ বন্ধ করুন। চালান: logman stop httptrace -ets4) ফাইলটিতে ট্রেস লগ লিখুন। চালান: tracerpt.exe httptrace.etl -of XML -o httptrace.xml5) এক্সএমএল ফাইলে 503 এর কারণটি পরীক্ষা করে এখানে পোস্ট করুন।
টোবিয়াস জে

উত্তর:


6

বারিস ঠিক আছে! একটি আইপি তে কনফিগার করা SSL শংসাপত্র: পোর্ট বাইন্ডিং (উদাহরণ: 100.74.156.187:443) সর্বদা http.sys এ অগ্রাধিকার নেয়! সুতরাং সমাধানটি নিম্নরূপ:

আপনার ওয়াইল্ডকার্ড-ফ্যালব্যাক-শংসাপত্রের জন্য একটি আইপি: 443 বাইন্ডিং কনফিগার করবেন না তবে এর জন্য একটি *: 443 বাইন্ডিং (* মানে "সমস্ত নিযুক্ত)" কনফিগার করুন

যদি আপনি আজুর ক্লাউড সার্ভিস এসএসএল এন্ডপয়েন্টে আপনার ওয়াইল্ডকার্ড শংসাপত্রটি কনফিগার করেছেন (যেমন আছে) আপনাকে আইপি: পোর্ট থেকে *: পোর্ট থেকে অ্যাজুর ক্লাউড সার্ভিস রানটাইম (আইআইএসকনফিগুয়েটর.এক্সই) দ্বারা নির্মিত এসএসএল বাইন্ডিংটি পরিবর্তন করতে হবে। আমি আমার ওয়েব রোলটির অন স্টার্টে নিম্নলিখিত পদ্ধতিটি কল করছি :

public static void UnbindDefaultSslBindingFromIp()
{
    Trace.TraceInformation(">> IISTenantManager: Unbind default SSL binding from IP");
    using (var serverManager = new Microsoft.Web.Administration.ServerManager())
    {
        try
        {
            var websiteName = string.Format("{0}_Web", Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id);
            var site = serverManager.Sites[websiteName];
            var defaultSslBinding = site.Bindings.Single(b => b.IsIPPortHostBinding && b.Protocol == "https");
            defaultSslBinding.BindingInformation = string.Format("*:{0}:", defaultSslBinding.EndPoint.Port);
            serverManager.CommitChanges();
        }
        catch (Exception ex)
        {
            Trace.TraceError(ex.ToString());
        }
    }
}

নিম্নলিখিত স্ক্রীনশটটি আমাদের ক্লাউড পরিষেবার একটি কার্যকারী কনফিগারেশন দেখায়। দয়া করে অ-মানক বন্দরগুলি সম্পর্কে বিভ্রান্ত হবেন না। স্ক্রিনশটটি এমুলেটেড ক্লাউড পরিষেবা থেকে।

আইআইএস কনফিগারেশন কাজ করছে

আরও একটি বিষয় উল্লেখ করতে হবে: * সমস্ত বাঁধাই * * তে পরিবর্তন করবেন না কারণ এইচটিটিপি (পোর্ট 80) বাইন্ডিং কেবল আইপি: পোর্ট টেমপ্লেটযুক্ত ক্লাউড পরিষেবায় কাজ করে। আইপি: 80-তে অন্য কোনও কিছু আবদ্ধ হয় তাই *: 80 কাজ করে না কারণ * "সমস্ত অ-নিরীক্ষিত" এবং আইপি ইতিমধ্যে HT.sys- এ অন্য কোথাও নির্ধারিত হয়েছে।


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

4

আপনার ক্যাচ-অল বাইন্ডিং আইপি: পোর্টের মতো নয় তা নিশ্চিত করুন। যখন কোনও আইপি: এইচটিটিপিএস বাইন্ডিংয়ের জন্য পোর্ট বাইন্ডিং উপস্থিত থাকে যখন এসএনআই প্রয়োজন হয় না, সেই বাইন্ডিংটি সর্বদা অগ্রাধিকার গ্রহণ করবে। আপনার ক্যাচ-অল কেসের জন্য, একটি *: পোর্ট বাইন্ডিং (* সমস্ত স্বাক্ষরযুক্ত নয়) ব্যবহার করুন।


ধন্যবাদ, তবে আপনি যেমন আমার বর্ণনাতে দেখতে পাচ্ছেন আমি প্রথমে বন্দর ছাড়াই এসএনআই বাইন্ডিং সেটআপ করার চেষ্টা করেছি, তবে যেহেতু এটি কার্যকর হয়নি আমি একটি কাস্টম পোর্ট বাইন্ডিং দিয়ে শেষ করেছি।
পাইডোন

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

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

বারিস্কাগলার হ'ল মাইক্রোসফ্ট বিকাশকারী (আইআইএস-এ কাজ করে) আমার সাথে খুব সুন্দর এবং সহায়ক কথোপকথন হয়েছিল! থেক্স বরিস! একসাথে আমরা আচরণটি বিশ্লেষণ করেছি এবং আমরা এই সিদ্ধান্তে পৌঁছেছি যে বর্ণিত আচরণটি http.sys এর পছন্দসই আচরণ। তবে একটি দুর্দান্ত কাজ আছে। বিস্তারিত জানার জন্য আমার উত্তর দেখুন।
টোবিয়াস জে

যে কারও পড়ার জন্য কেবল একটি নোট, আমি সম্প্রতি আবিষ্কার করেছি যে আপনি যদি রিমোট ডেস্কটপের জন্য কোনও পরিষেবা কনফিগার করতে Azure Portal ব্যবহার করেন (বা অন্যথায় শংসাপত্রের কনফিগারেশন পরিবর্তন করুন) এটি একটি আইপি হতে পারে: পোর্ট বাইন্ডিং স্বয়ংক্রিয়ভাবে তৈরি হতে পারে এবং আপনার সমস্ত এসএনআই ভেঙে দিতে পারে । আমার সেই বিশেষ সমস্যার সমাধান নেই। এটি RoleEnਵਰনার পরে ঘটেছিল C পরিবর্তিত হয়েছে তাই আমি এটি WebRole.cs এ ধরতে পারি না।
মাইক

1

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

http://www.vic.ms/microsoft/windows-azure/multiples-ssl-certificates-on-windows-azure-cloud-services/


ধন্যবাদ, তবে আমি যেমন ব্যাখ্যা করেছি যে এসএনআই নিজেই (আমি এটি ব্যবহার করছি) এর সাথে কোনও সমস্যা নেই তবে বরং আইআইএসে ওয়াইল্ডকার্ড হোস্ট নামের মিল কীভাবে কাজ করে।
পাইডোন

এই নিবন্ধটি আর বিদ্যমান নেই, তবে এখানে এটি ওয়েব সংরক্ষণাগারটিতে রয়েছে: web.archive.org/web/20151020041907/http://www.vic.ms/microsoft/…
মাইকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.