এই নির্দেশিকায়, আমরা আপনাকে দেখাব কিভাবে উইন্ডোজ সার্ভার 2019/2016/2012 R2 এ চলমান IIS ওয়েব সার্ভারে একটি সাইটের জন্য একটি বিনামূল্যের TLS/SSL শংসাপত্র এনক্রিপ্ট করুন এবং কীভাবে ইনস্টল করবেন।
বিষয়বস্তু:
- আসুন উইন্ডোজের জন্য এনক্রিপ্ট এবং ACME ক্লায়েন্ট করি
- Windows সার্ভারে IIS-এ লেটস এনক্রিপ্ট TLS সার্টিফিকেট ইনস্টল করতে WACS ক্লিন্ট
- IIS URL পুনঃলিখন ব্যবহার করে HTTP থেকে HTTPS-এ পুনঃনির্দেশ করুন
- আরডিএস গেটওয়ে এবং ওয়েব অ্যাক্সেস সহ লেটস এনক্রিপ্ট সার্টিফিকেট ব্যবহার করা
আসুন উইন্ডোজের জন্য এনক্রিপ্ট এবং ACME ক্লায়েন্ট করি
একটি ওয়েবসাইটের একটি TLS/SSL শংসাপত্র ম্যান-ইন-দ্য-মিডল (MITM) থেকে পাবলিক নেটওয়ার্কের মাধ্যমে স্থানান্তরিত ব্যবহারকারীর ডেটা রক্ষা করতে দেয়। ) আক্রমণ করে এবং ডেটা অখণ্ডতা প্রদান করে। অলাভজনক শংসাপত্র কেন্দ্র আসুন এনক্রিপ্ট করি API ব্যবহার করে HTTPS এনক্রিপশনের জন্য আপনাকে স্বয়ংক্রিয়ভাবে বিনামূল্যে X.509 এনক্রিপশন TLS শংসাপত্র ইস্যু করার অনুমতি দেয়৷ শুধুমাত্র ডোমেন যাচাইকরণের জন্য শংসাপত্র যা 90 দিনের মধ্যে মেয়াদ শেষ হয়ে যায় (প্রতি সপ্তাহে একটি ডোমেনের জন্য 50টি শংসাপত্রের সীমা রয়েছে)। কিন্তু আপনি সহজ সময়সূচী ব্যবহার করে আপনার ওয়েবসাইটের জন্য স্বয়ংক্রিয়ভাবে SSL শংসাপত্র পুনর্নবীকরণ করতে পারেন।
স্বয়ংক্রিয়ভাবে শংসাপত্রগুলি ইস্যু করার জন্য চলুন এনক্রিপ্ট API ইন্টারফেসটিকে বলা হয় স্বয়ংক্রিয় শংসাপত্র ব্যবস্থাপনা পরিবেশ (ACME ) API উইন্ডোজ সিস্টেমের জন্য 3টি সবচেয়ে জনপ্রিয় ACME API ক্লায়েন্ট বাস্তবায়ন রয়েছে:
- উইন্ডোজ ACME সিম্পল (WACS) ইন্টারেক্টিভ ইস্যু একটি SSL সার্টিফিকেটের কমান্ড প্রম্পট টুল এবং এটিকে আপনার IIS ওয়েব সার্ভারে একটি নির্দিষ্ট সাইটে আবদ্ধ করে;
- পাওয়ারশেল ACMESharp মডিউল – ACME API এর মাধ্যমে Let's Encrypt সার্ভারের সাথে ইন্টারঅ্যাক্ট করার জন্য অনেকগুলি cmdlet সহ PowerShell লাইব্রেরি;
- প্রত্যয়িত করুন ACME API ব্যবহার করে ইন্টারেক্টিভভাবে SSL সার্টিফিকেট পরিচালনা করার জন্য একটি Windows গ্রাফিক্স টুল।
Windows সার্ভারে IIS-এ লেটস এনক্রিপ্ট TLS সার্টিফিকেট ইনস্টল করতে WACS ক্লিন্ট
Let's Encrypt থেকে SSL সার্টিফিকেট পাওয়ার সবচেয়ে সহজ উপায় হল কনসোল টুল Windows ACME Simple ব্যবহার করা (WACS ) (আগে এই প্রকল্পটিকে LetsEncrypt-Win-Simple বলা হত ) এটি একটি সাধারণ উইজার্ড যা আপনাকে IIS-এ চলমান ওয়েবসাইটগুলির মধ্যে একটি নির্বাচন করতে দেয়, স্বয়ংক্রিয়ভাবে ইস্যু করে এবং এটিতে একটি SSL শংসাপত্র আবদ্ধ করে৷
ধরুন, আপনার উইন্ডোজ সার্ভার 2016-এ একটি IIS ওয়েবসাইট চলছে। আপনার কাজ হল Let's Encrypt থেকে একটি বিনামূল্যের SSL সার্টিফিকেট ইনস্টল করে ওয়েবসাইটটিকে HTTPS মোডে স্যুইচ করা।
GitHub https://github.com/PKISharp/win-acme/releases থেকে WACS ক্লায়েন্টের সর্বশেষ রিলিজ ডাউনলোড করুন (আমার ক্ষেত্রে, এটি v2.0.10 সংস্করণ – ফাইলের নাম হল win-acme.v2 .0.10.444.zip )।
IIS ইনস্টল করা সার্ভারের নিম্নলিখিত ডিরেক্টরিতে জিপ সংরক্ষণাগারটি বের করুন:c:\inetpub\letsencrypt
এলিভেটেড কমান্ড প্রম্পট খুলুন, c:\inetpub\letsencrypt ডিরেক্টরিতে যান এবং wacs.exe চালান। . এটি একটি ইন্টারেক্টিভ লেটস এনক্রিপ্ট সার্টিফিকেট জেনারেশন চালু করবে এবং আইআইএস সাইট উইজার্ডের সাথে আবদ্ধ হবে। দ্রুত একটি নতুন শংসাপত্র তৈরি করতে, N: নির্বাচন করুন৷ – নতুন শংসাপত্র তৈরি করুন (IIS-এর জন্য সহজ) .
এর পরে, আপনাকে শংসাপত্রের প্রকার নির্বাচন করতে হবে। আমাদের উদাহরণে, উপনাম সহ একটি শংসাপত্র ব্যবহার করার প্রয়োজন নেই (একাধিক SAN – বিষয় বিকল্প নাম), তাই শুধুমাত্র একটি আইটেম নির্বাচন করুন 1৷ একটি IIS সাইটের একক বাঁধাই . আপনার যদি একটি ওয়াইল্ডকার্ড শংসাপত্রের প্রয়োজন হয়, 3 বিকল্পটি নির্বাচন করুন৷ .
তারপর ইউটিলিটি আইআইএস-এ চলমান ওয়েবসাইটগুলির তালিকা প্রদর্শন করে এবং আপনাকে সার্টিফিকেট ইস্যু করার জন্য একটি সাইট নির্বাচন করতে অনুরোধ করে৷
আপনার ইমেল ঠিকানা নির্দিষ্ট করুন যেখানে শংসাপত্র পুনর্নবীকরণ সমস্যা এবং অন্যান্য জটিল বার্তা এবং অপব্যবহারের বিজ্ঞপ্তি পাঠানো হবে (আপনি কমা দ্বারা পৃথক করা একাধিক ইমেল ঠিকানা নির্দিষ্ট করতে পারেন)। এটি ব্যবহারের শর্তাবলীতে সম্মত হওয়া অবশেষ এবং Windows ACME Simple Let's Encrypt সার্ভারের সাথে সংযুক্ত হবে এবং আপনার ওয়েবসাইটের জন্য স্বয়ংক্রিয়ভাবে একটি নতুন SSL শংসাপত্র তৈরি করার চেষ্টা করবে৷
IIS-এর জন্য SSL Let's Encrypt সার্টিফিকেট তৈরি এবং ইনস্টল করার প্রক্রিয়া সম্পূর্ণরূপে স্বয়ংক্রিয়।
ডিফল্টরূপে, ডোমেন যাচাইকরণ http-01 যাচাইকরণ (সেলফহোস্টিং) এ সম্পাদিত হয় মোড. এটি করার জন্য, আপনার অবশ্যই একটি ডোমেন ডিএনএস রেকর্ড থাকতে হবে যা আপনার ওয়েব সার্ভারের দিকে নির্দেশ করে৷ ম্যানুয়াল মোডে WACS চালানোর সময় (সম্পূর্ণ বিকল্প), আপনি যাচাইকরণের ধরন নির্বাচন করতে পারেন – 4 [http-01] IIS-এ অস্থায়ী অ্যাপ্লিকেশন তৈরি করুন (প্রস্তাবিত) . এই ক্ষেত্রে, IIS ওয়েব সার্ভারে একটি ছোট অ্যাপ্লিকেশন তৈরি করা হবে যার মাধ্যমে লেটস এনক্রিপ্ট সার্ভারগুলি ডোমেন যাচাইকরণ করতে সক্ষম হবে৷
দ্রষ্টব্য . TLS/HTTP যাচাইকরণের সময়, আপনার সাইটটি HTTP (80/TCP) এবং HTTPS (443/TCP) প্রোটোকলের মাধ্যমে ইন্টারনেট থেকে তার সম্পূর্ণ DNS নামের মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে।WACS টুলটি C:\Users\%username%\AppData\Roaming\letsencrypt-win-simple<-এ শংসাপত্রের ব্যক্তিগত কী (*.pem), শংসাপত্র নিজেই এবং অন্যান্য অনেক ফাইল সংরক্ষণ করে। . তারপর এটি ব্যাকগ্রাউন্ডে তৈরি হওয়া Let’s Encrypt SSL সার্টিফিকেট ইনস্টল করবে এবং এটি আপনার IIS সাইটে আবদ্ধ করবে। যদি সাইটে একটি SSL শংসাপত্র ইনস্টল করা থাকে (উদাহরণস্বরূপ, স্ব-স্বাক্ষরিত শংসাপত্র), এটি একটি নতুন দিয়ে প্রতিস্থাপিত হবে৷
IIS ম্যানেজারে, সাইট বাইন্ডিং খুলুন আপনার ওয়েবসাইটের জন্য সেটিংস এবং যাচাই করুন যে এটি Let's Encrypt Authority X3 দ্বারা জারি করা শংসাপত্র ব্যবহার করে .
আপনি যদি Windows ট্রাস্টেড রুট সার্টিফিকেশন কর্তৃপক্ষ আপডেট করে থাকেন তাহলে এই শংসাপত্রটি আপনার কম্পিউটারে বিশ্বস্ত হিসাবে প্রদর্শিত হবে৷
আপনি ওয়েব হোস্টিং -> সার্টিফিকেটের অধীনে কম্পিউটার সার্টিফিকেট স্টোরে আসুন এনক্রিপ্ট আইআইএস শংসাপত্রটি খুঁজে পেতে পারেন .
Windows ACME Simple Windows Task Scheduler-এ একটি নতুন কাজ তৈরি করে (win-acme-renew (acme-v02.api.letsencrypt.org)
) স্বয়ংক্রিয়ভাবে শংসাপত্র পুনর্নবীকরণ করতে. কাজটি প্রতিদিন শুরু হয়, এবং শংসাপত্রের পুনর্নবীকরণ 60 দিন পরে সঞ্চালিত হয়। এই কাজটি কমান্ড চালায়:
C:\inetpub\letsencrypt\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org"
লেটস এনক্রিপ্ট সার্টিফিকেট ম্যানুয়ালি আপডেট করতে আপনি একই কমান্ড ব্যবহার করতে পারেন।
IIS URL পুনঃলিখন ব্যবহার করে HTTP থেকে HTTPS এ পুনঃনির্দেশ করুন
সমস্ত ইনকামিং HTTP ট্র্যাফিককে HTTPS ওয়েবসাইট URL-এ পুনঃনির্দেশ করতে, Microsoft URL পুনঃলিখন মডিউল ইনস্টল করুন (https://www.iis.net/downloads/microsoft/url-rewrite), এবং নিশ্চিত করুন যে সাইট সেটিংসে SSL প্রয়োজন বিকল্পটি নিষ্ক্রিয় করা আছে। এখন web.config এ পুনঃনির্দেশ কনফিগার করুন পুনঃলিখনের নিয়মের সাথে:
<system.webServer> <rewrite> <rules> <rule name=”HTTP to HTTPS Redirect” enabled=”true” stopProcessing=”true”> <match url=”(.*)” /> <conditions> <add input=”{HTTPS}” pattern=”off” ignoreCase=”true” /> </conditions> <action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” appendQueryString=”true” redirectType=”Permanent” /> </rule> </rules> </rewrite> </system.webServer>
এছাড়াও আপনি IIS ম্যানেজার GUI এর মাধ্যমে URL রিরাইট এক্সটেনশন ব্যবহার করে ট্রাফিক পুনঃনির্দেশ কনফিগার করতে পারেন। সাইট নির্বাচন করুন -> আপনার সাইটের নাম -> ইউআরএল পুনর্লিখন .
একটি নতুন নিয়ম তৈরি করুন নিয়ম যোগ করুন -> ফাঁকা নিয়ম .
একটি নিয়মের নাম উল্লেখ করুন এবং নিম্নলিখিত প্যারামিটার মান পরিবর্তন করুন:
- অনুরোধ করা URL :প্যাটার্নের সাথে মেলে
- ব্যবহার করা হচ্ছে :রেগুলার এক্সপ্রেশন
- প্যাটার্ন :(.*)
শর্তগুলিতে বিভাগ, লজিক্যাল গ্রুপিং পরিবর্তন করুন :সব মিলিয়ে নিন এবং যোগ করুন ক্লিক করুন . নিম্নলিখিত সেটিংস নির্দিষ্ট করুন:
- শর্ত ইনপুট: {HTTPS
- ইনপুট স্ট্রিং কিনা তা পরীক্ষা করুন: প্যাটার্নের সাথে মেলে
- প্যাটার্ন: ^বন্ধ$
এখন অ্যাকশন ব্লকে সিলেক্ট করুন:
- ক্রিয়ার ধরন: পুনঃনির্দেশ করুন
- ইউআরএল পুনঃনির্দেশ করুন :https://{HTTP_HOST}/{R:1} ৷
- রিডাইরেক্ট প্রকার :স্থায়ী (301)
একটি ব্রাউজার খুলুন এবং একটি HTTP ঠিকানা দিয়ে আপনার সাইট খুলতে চেষ্টা করুন; আপনাকে স্বয়ংক্রিয়ভাবে HTTPS URL-এ পুনঃনির্দেশিত করা উচিত।
আরডিএস গেটওয়ে এবং ওয়েব অ্যাক্সেস সহ লেটস এনক্রিপ্ট সার্টিফিকেট ব্যবহার করা
আপনি যদি কর্পোরেট নেটওয়ার্কে বহিরাগত ব্যবহারকারীদের সংযোগ করতে RDS গেটওয়ে বা RDS ওয়েব অ্যাক্সেস ব্যবহার করেন, তাহলে আপনি স্ব-স্বাক্ষরিত শংসাপত্রের পরিবর্তে Let's Encrypt থেকে বিশ্বস্ত SSL শংসাপত্র ব্যবহার করতে পারেন। উইন্ডোজ সার্ভারে দূরবর্তী ডেস্কটপ পরিষেবাগুলিকে সুরক্ষিত করতে চলুন এনক্রিপ্ট শংসাপত্রটি কীভাবে সঠিকভাবে ইনস্টল করবেন তা বিবেচনা করুন৷
যদি RDSH ভূমিকাটি রিমোট ডেস্কটপ গেটওয়ে সার্ভারেও ইনস্টল করা থাকে, তাহলে আপনাকে অবশ্যই নন-অ্যাডমিন ব্যবহারকারীদের সেই ডিরেক্টরি অ্যাক্সেস করতে বাধা দিতে হবে যেখানে WACS ফাইল রয়েছে (আমার উদাহরণে, c:\inetpub\letsencrypt) এবং Let's Encrypt সার্টিফিকেট এবং কী ( C:\ProgramData\win-acme) সংরক্ষণ করা হয়।তারপর, উপরে বর্ণিত হিসাবে, RD গেটওয়ে সার্ভারে wacs.exe চালান। পছন্দসই IIS সাইট নির্বাচন করুন (সাধারণত এটি ডিফল্ট ওয়েব সাইট . আসুন এনক্রিপ্ট আপনাকে একটি নতুন শংসাপত্র ইস্যু করবে এবং এটিকে আইআইএস ওয়েবসাইটে আবদ্ধ করবে এবং স্বয়ংক্রিয় শংসাপত্র পুনর্নবীকরণ কাজ টাস্ক শিডিউলারে প্রদর্শিত হবে৷
আপনি ম্যানুয়ালি এই শংসাপত্রটি রপ্তানি করতে পারেন এবং SSL বাইন্ডিংয়ের মাধ্যমে প্রয়োজনীয় RDS পরিষেবাগুলিতে এটি আবদ্ধ করতে পারেন৷ কিন্তু লেটস এনক্রিপ্ট সার্টিফিকেট রিনিউ করা হলে প্রতি ৬০ দিনে আপনাকে এই ধাপগুলো ম্যানুয়ালি করতে হবে।
Let's Encrypt সার্টিফিকেট আপডেট করার পর RDS গেটওয়েতে SSL সার্টিফিকেট স্বয়ংক্রিয়ভাবে আবদ্ধ করতে আমরা PowerShell স্ক্রিপ্ট ব্যবহার করতে পারি।
win-acme-এ একটি প্রস্তুত PowerShell স্ক্রিপ্ট আছে প্রকল্প – ImportRDGateway.ps1 (https://github.com/PKISharp/win-acme/tree/master/dist/Scripts ), যা আপনাকে দূরবর্তী ডেস্কটপ পরিষেবাগুলির জন্য নির্বাচিত SSL শংসাপত্র ইনস্টল করার অনুমতি দেয়৷ এই স্ক্রিপ্টের প্রধান ত্রুটি হল যে আপনাকে ম্যানুয়ালি নতুন শংসাপত্রের থাম্বপ্রিন্ট নির্দিষ্ট করতে হবে:
ImportRDGateway.ps1 <certThumbprint>
স্বয়ংক্রিয়ভাবে নির্দিষ্ট IIS সাইট থেকে শংসাপত্র থাম্বপ্রিন্ট পেতে, পরিবর্তিত স্ক্রিপ্টটি ব্যবহার করুন ImportRDGateway_Cert_From_IIS.ps1 (ImportRDGateway.ps1 এর উপর ভিত্তি করে)।
আপনি এই স্ক্রিপ্টটি ম্যানুয়ালি চালাতে পারেন:
powershell -File ImportRDGateway_Cert_From_IIS.ps1
যদি আপনার RDS গেটওয়ে সূচক 0 সহ IIS “ডিফল্ট ওয়েব সাইট”-এ চলে, আপনি পরিবর্তন ছাড়াই স্ক্রিপ্টটি ব্যবহার করতে পারেন।
IIS-এ সাইট আইডি পেতে, পাওয়ারশেল কনসোল খুলুন এবং চালান:
Import-Module WebAdministration
Get-ChildItem IIS:Sites|ft -AutoSize
আইডি কলাম আপনার সাইটের সূচী দেখায়, এটি থেকে একটি বিয়োগ করুন। ফলাফলের সূচকটি 0 এর পরিবর্তে নির্দিষ্ট করা উচিত পাওয়ারশেল স্ক্রিপ্টের 27 লাইনে:
$NewCertThumbprint = (Get-ChildItem IIS:SSLBindings)[0].Thumbprint
এখন win-acme-renew খুলুন সময়সূচী কার্য, এবং ক্রিয়া-এ ট্যাবে একটি নতুন টাস্ক যোগ করুন যা SSL সার্টিফিকেট আপডেট করার পর ImportRDGateway_Cert_From_IIS.ps1 স্ক্রিপ্ট চালায়।
PowerShell এক্সিকিউশন নীতি পরিবর্তন না করার জন্য, আপনি কমান্ড দিয়ে স্ক্রিপ্ট চালাতে পারেন:
PowerShell.exe -ExecutionPolicy Bypass -File c:\inetpub\letsencrypt\ImportRDGateway_Cert_From_IIS.ps1
এখন SSL শংসাপত্রকে RDS-এর সাথে আবদ্ধ করার স্ক্রিপ্টটি Let’s Encrypt শংসাপত্র পুনর্নবীকরণের পরপরই কার্যকর করা হবে। এই ক্ষেত্রে, RD গেটওয়ে পরিষেবা স্বয়ংক্রিয়ভাবে কমান্ড দিয়ে পুনরায় চালু হয়:
Restart-Service TSGateway
[aler] যখন TSGateway পরিষেবা পুনঃসূচনা হয়, সমস্ত বর্তমান ব্যবহারকারী সেশন সংযোগ বিচ্ছিন্ন হয়ে যায়, তাই প্রতি 60 দিনে একবার শংসাপত্র পুনর্নবীকরণ টাস্ক চালু করার ফ্রিকোয়েন্সি পরিবর্তন করার পরামর্শ দেওয়া হয়।[/alert]