HTTPS (Hypertext Transfer Protocol Secure) হচ্ছে একটি নিরাপদ যোগাযোগ প্রোটোকল, যা SSL/TLS (Secure Sockets Layer / Transport Layer Security) এর মাধ্যমে ওয়েব সার্ভার এবং ক্লায়েন্টের মধ্যে তথ্য এনক্রিপ্ট করে। এটি ব্যবহারকারীর ডেটাকে সুরক্ষিত রাখে এবং ওয়েব অ্যাপ্লিকেশন বা ওয়েবসাইটে যোগাযোগের সময় কোনও তৃতীয় পক্ষের দ্বারা তথ্য চুরির সম্ভাবনা কমায়।
SSL (Secure Sockets Layer) এবং TLS (Transport Layer Security) হলো প্রোটোকল যা ইন্টারনেটের মাধ্যমে তথ্য নিরাপদে প্রেরণের জন্য ব্যবহৃত হয়। SSL প্রথমদিকে তৈরি হয়েছিল, তবে বর্তমানে TLS এর উন্নত সংস্করণ ব্যবহার করা হয়, যেটি SSL এর চেয়ে আরও নিরাপদ এবং কার্যকর।
SSL/TLS প্রধানত দুটি কাজ করে:
HTTPS ব্যবহারের জন্য প্রথমে আপনার ওয়েব অ্যাপ্লিকেশনকে SSL/TLS সার্টিফিকেট ইনস্টল করতে হবে এবং সার্ভারে HTTPS সক্ষম করতে হবে। ASP.Net Core অ্যাপ্লিকেশনে HTTPS কনফিগারেশন করার প্রক্রিয়া নিচে দেওয়া হলো:
একটি বৈধ SSL/TLS সার্টিফিকেট সার্ভারে ইনস্টল করা প্রয়োজন। এটি পাবলিক সার্টিফিকেট অথরিটি (CA) থেকে কিনতে পারেন অথবা আপনি নিজের সার্টিফিকেট (Self-signed Certificate) তৈরি করতে পারেন।
ASP.Net Core অ্যাপ্লিকেশনে HTTPS সক্ষম করতে, আপনাকে কিছু কনফিগারেশন করতে হবে। এটি করতে Startup.cs ফাইলে কিছু পরিবর্তন করতে হবে।
ConfigureServices মেথডে HTTPS সাপোর্ট যোগ করা:
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpsRedirection(options =>
{
options.HttpsPort = 443; // HTTPS Port 443
});
}
Configure মেথডে HTTPS রিডিরেকশন কনফিগারেশন যোগ করা:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts(); // HTTP Strict Transport Security
}
app.UseHttpsRedirection(); // HTTP থেকে HTTPS তে রিডিরেকশন
app.UseStaticFiles();
app.UseRouting();
}
UseHttpsRedirection মেথডটি HTTP রিকোয়েস্টকে HTTPS রিকোয়েস্টে রিডিরেক্ট করে।
Self-Signed সার্টিফিকেট তৈরি করতে dotnet dev-certs টুল ব্যবহার করা যেতে পারে:
dotnet dev-certs https --trust
এই কমান্ডটি একটি self-signed সার্টিফিকেট তৈরি করবে এবং তা আপনার ডেভেলপমেন্ট পরিবেশে ট্রাস্টেড হিসেবে মার্ক করবে। এই সার্টিফিকেটটি শুধুমাত্র ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য উপযোগী।
প্রোডাকশন পরিবেশে, আপনাকে একটি SSL/TLS সার্টিফিকেট ইন্সটল করতে হবে। এটি করতে হলে আপনার সার্ভার বা হোস্টিং প্রদানকারী থেকে সার্টিফিকেট কিনে, সার্ভারে ইন্সটল করুন।
https://
পোর্ট (পোর্ট 443) ওপেন করে HTTPS চালু করুন।SSL এর পুরনো সংস্করণগুলি নিরাপদ নয়। তাই আপনি TLS 1.2 বা তার পরবর্তী সংস্করণ ব্যবহার করুন। TLS 1.0 বা 1.1 ব্যবহার থেকে বিরত থাকুন।
SSL/TLS সার্টিফিকেটের সাথে ব্যবহৃত cipher suites নিরাপত্তার জন্য অত্যন্ত গুরুত্বপূর্ণ। শক্তিশালী সাইফার স্যুইট যেমন AES এবং ECDHE ব্যবহার করুন এবং দুর্বল সাইফার যেমন RC4, DES, বা 3DES থেকে বিরত থাকুন।
HSTS হল একটি নিরাপত্তা ফিচার যা নিশ্চিত করে যে ব্রাউজার শুধুমাত্র HTTPS কানেকশন গ্রহণ করবে, HTTP কানেকশন নয়। এটি হোস্টেড অ্যাপ্লিকেশনগুলোকে man-in-the-middle আক্রমণ থেকে সুরক্ষিত রাখে।
app.UseHsts(); // HSTS কনফিগারেশন
SSL/TLS সার্টিফিকেটের মেয়াদ শেষ হওয়া আপনার ওয়েবসাইটের নিরাপত্তা হুমকি হতে পারে। সার্টিফিকেটটি প্রতি বছর বা নির্দিষ্ট মেয়াদে রিনিউ করুন এবং আপনার অ্যাপ্লিকেশনে সঠিকভাবে কনফিগার করা আছে কিনা তা পরীক্ষা করুন।
HTTP থেকে HTTPS তে রিডিরেকশন নিশ্চিত করুন। এর জন্য HTTPS Redirection Middleware ব্যবহার করুন যাতে আপনার অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে HTTP রিকোয়েস্টকে HTTPS তে রিডিরেক্ট করে।
app.UseHttpsRedirection();
HTTPS এবং SSL/TLS কনফিগারেশন একটি ওয়েব অ্যাপ্লিকেশন বা সাইটের নিরাপত্তা নিশ্চিত করার জন্য অপরিহার্য। SSL/TLS সার্টিফিকেট ইনস্টল করা, HSTS এবং সাইফার স্যুইটগুলির মাধ্যমে সংযোগের সুরক্ষা নিশ্চিত করা, এবং HTTP রিকোয়েস্টগুলোকে HTTPS তে রিডিরেক্ট করা এই কনফিগারেশনের গুরুত্বপূর্ণ অংশ। প্রোডাকশনে একাধিক নিরাপত্তা পদ্ধতি এবং বেস্ট প্র্যাকটিস অনুসরণ করে আপনি একটি শক্তিশালী ও নিরাপদ ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
common.read_more