HTTPS ও SSL কী? সুরক্ষিত ওয়েবসাইট কীভাবে কাজ করে, সহজ ব্যাখ্যা
HTTPS হলো HTTP-এর নিরাপদ রূপ, যে প্রোটোকল দিয়ে ব্রাউজার ওয়েবসাইটের সঙ্গে কথা বলে। এটি প্রতিটি অনুরোধ ও উত্তরকে TLS (Transport Layer Security) দিয়ে তৈরি এনক্রিপ্টেড সংযোগের ভেতরে মুড়ে দেয়, তাই দর্শক ও ওয়েবসাইটের মাঝখানে কেউ পাঠানো তথ্য পড়তে বা বদলাতে পারে না। SSL হলো একই ধারণার পুরোনো নাম, অর্থাৎ যে মূল প্রোটোকলকে TLS প্রতিস্থাপন করেছে, সেজন্যই মানুষ এখনো "SSL সার্টিফিকেট" বলে।
AI দিয়ে বানানোর ক্ষেত্রে HTTPS কেন গুরুত্বপূর্ণ
যে অ্যাপই আপনি প্রকাশ করেন, সেটি HTTPS-এ পরিবেশন হওয়া উচিত। এটি শুধু ভালো অভ্যাস নয়:
- ব্রাউজার এটি আশা করে। HTTP-তে থাকা সাইটকে "Not secure" চিহ্নিত করা হয়, এবং কিছু ব্রাউজার ফিচার, যেমন লোকেশন অ্যাক্সেস, ক্যামেরা ও মাইক্রোফোন, এবং অফলাইন অ্যাপের জন্য service worker, সাধারণত শুধু নিরাপদ (HTTPS) পেজে কাজ করে।
- লগইন ও ফর্ম। HTTPS ছাড়া পাসওয়ার্ড, সেশন কুকি ও ফর্মের তথ্য পড়া যায় এমন লেখা হিসেবে যাতায়াত করে। একই পাবলিক Wi-Fi-তে থাকা যে কেউ তা ধরতে পারে।
- পেমেন্ট ও তৃতীয় পক্ষ। পেমেন্ট প্রোভাইডার, OAuth সাইন-ইন ও অনেক API-এর জন্য HTTPS redirect ও callback URL লাগে।
- বিশ্বাস ও সার্চ। দর্শকরা সতর্কবার্তাটি লক্ষ্য করে, আর Google বলেছে যে তারা HTTPS-কে র্যাঙ্কিং সংকেত হিসেবে বিবেচনা করে।
ভালো খবর, বেশিরভাগ আধুনিক হোস্টিং প্ল্যাটফর্মে HTTPS স্বয়ংক্রিয়ভাবে সেট হয়ে যায়। আপনার মূলত যা দরকার তা হলো অংশগুলো বোঝা, যাতে কাস্টম ডোমেইন বা mixed-content সতর্কবার্তায় সমস্যা হলে ঠিক করতে পারেন।
একটি দৈনন্দিন উপমা
সাধারণ HTTP-তে ডেটা পাঠানো মানে পোস্টকার্ড পাঠানো: যে ডাকপিয়ন ছুঁয়ে যায় সে সেটি পড়তে পারে, এমনকি বার্তা বদলেও দিতে পারে।
HTTPS হলো একটি সিলমোহর করা, ট্যাম্পার-প্রুফ খাম পাঠানো, এবং আগে প্রাপকের সরকারি পরিচয়পত্র যাচাই করা। সার্টিফিকেট হলো সেই পরিচয়পত্র, যা একটি বিশ্বস্ত কর্তৃপক্ষ (certificate authority) দিয়েছে, এবং যে নিশ্চিত করেছে ওয়েবসাইটটি সত্যিই ডোমেইনটির মালিক। এনক্রিপশন হলো সিলমোহর করা খাম। পরিচয়পত্র প্রমাণ করে আপনি সঠিক ঠিকানায় লিখছেন; খাম বিষয়বস্তু গোপন রাখে।
HTTPS সহজভাবে কীভাবে কাজ করে
ব্রাউজার যখন https://shop.example.com খোলে:
- হ্যালো। ব্রাউজার সংযোগ করে এবং জানায় সে কোন এনক্রিপশন পদ্ধতি সমর্থন করে।
- সার্টিফিকেট। সার্ভার তার সার্টিফিকেট পাঠায়, যেখানে লেখা থাকে "এই কী
shop.example.com-এর" এবং একটি certificate authority সেটিকে স্বাক্ষর করেছে। - যাচাই। ব্রাউজার যে কর্তৃপক্ষগুলোকে আগে থেকে বিশ্বাস করে, তাদের স্বাক্ষরের সঙ্গে মিলিয়ে দেখে, সার্টিফিকেটের মেয়াদ শেষ হয়নি কি না দেখে, এবং ডোমেইন মেলে কি না দেখে।
- কী। ব্রাউজার ও সার্ভার এই সেশনের জন্য একটি নতুন গোপন কী ঠিক করে, কখনো সেটি খোলাখুলি না পাঠিয়ে।
- এনক্রিপ্টেড কথোপকথন। এখন সব অনুরোধ ও উত্তর, পেজ, ফর্মের তথ্য ও কুকি, এনক্রিপ্টেড অবস্থায় যাতায়াত করে।
এই TLS handshake কয়েক মিলিসেকেন্ডে স্বয়ংক্রিয়ভাবে হয়। দর্শক শুধু প্যাডলক আইকন দেখে (কিছু ব্রাউজারে একটি নিরপেক্ষ সাইট-তথ্য আইকন)।
HTTPS কী সুরক্ষা দেয় ও কী দেয় না
| যা সুরক্ষা দেয় | যা সুরক্ষা দেয় না |
|---|---|
| ব্রাউজার ও সার্ভারের মধ্যে যাতায়াতের ডেটা | আপনার সার্ভারে বা ডাটাবেসে পৌঁছানোর পর ডেটা |
| পাবলিক Wi-Fi-তে আড়ি পাতা থেকে | দূষিত বা প্রতারক ওয়েবসাইট থেকে |
| পথে পেজ বদলানো থেকে | আপনার অ্যাপের বাগ থেকে, যেমন অনুমতি যাচাইয়ের ঘাটতি |
| পাঠানোর সময় কুকি ও পাসওয়ার্ড | দুর্বল পাসওয়ার্ড বা ফাঁস হওয়া API কী থেকে |
HTTPS অনুরোধের বিষয়বস্তু এনক্রিপ্ট করে, পেজের পথ ও query string সহ। তবে আপনি যে ডোমেইনে যাচ্ছেন তা পথের নেটওয়ার্কগুলোতে সাধারণত দেখা যায়। ইউআরএলে ব্যক্তিগত তথ্য না রাখার এটি একটি কারণ, কারণ সেগুলো লগ ও ব্রাউজারের ইতিহাসেও শেষ হয়।
একটি বাস্তব উদাহরণ: কাস্টম ডোমেইন যুক্ত করা
ধরুন আপনি একটি বুকিং অ্যাপ প্রকাশ করেছেন এবং সেটি book.myyogastudio.com-এ চান:
- আপনি একটি DNS রেকর্ড যোগ করেন, যেটি
book.myyogastudio.com-কে আপনার হোস্টের দিকে নির্দেশ করে। দেখুন ডোমেইন ও DNS কীভাবে কাজ করে। - হোস্ট একটি certificate authority-কে প্রমাণ করে যে সে ওই নামটির নিয়ন্ত্রণে আছে, সাধারণত ওই ডোমেইনে একটি চ্যালেঞ্জের সাড়া দিয়ে, এবং একটি সার্টিফিকেট পায়।
- হোস্ট সেটি ইনস্টল করে এবং মেয়াদ শেষ হওয়ার আগে স্বয়ংক্রিয়ভাবে নবায়ন করে। সার্টিফিকেট ইচ্ছাকৃতভাবে স্বল্পমেয়াদি, তাই স্বয়ংক্রিয় নবায়ন গুরুত্বপূর্ণ।
http://book.myyogastudio.com-এ আসা দর্শকদেরhttps://-এ পাঠিয়ে দেওয়া হয়।
ধাপ ১ ভুল হলে, অর্থাৎ রেকর্ড অন্য কোথাও নির্দেশ করলে বা মাঝখানে একটি প্রক্সি থাকলে, ধাপ ২ ব্যর্থ হতে পারে এবং দর্শক সার্টিফিকেট ত্রুটি দেখে। কাস্টম ডোমেইন যুক্ত করার সময় মানুষ যে সবচেয়ে সাধারণ HTTPS সমস্যায় পড়ে, এটি সেটিই।
মূল শব্দ
| শব্দ | অর্থ |
|---|---|
| TLS | Transport Layer Security, HTTPS-এর পেছনের এনক্রিপশন প্রোটোকল। |
| SSL | Secure Sockets Layer, TLS-এর পুরোনো পূর্বসূরি। নামটি এখনো টিকে আছে। |
| Certificate | একটি স্বাক্ষরিত ফাইল, যা একটি ডোমেইনকে একটি পাবলিক কীর সঙ্গে যুক্ত করে। |
| Certificate authority (CA) | একটি সংস্থা, যাকে ব্রাউজার সার্টিফিকেট দেওয়ার জন্য বিশ্বাস করে, যেমন Let's Encrypt। |
| Domain validation (DV) | একটি সার্টিফিকেট, যা ডোমেইনের নিয়ন্ত্রণ প্রমাণ করে; প্রায় সব সাইট এটিই ব্যবহার করে। |
| Wildcard certificate | এক স্তর নিচের সব সাবডোমেইন কভার করে, যেমন *.example.com। |
| Mixed content | একটি HTTPS পেজ কিছু রিসোর্স সাধারণ HTTP-তে লোড করছে। ব্রাউজার এটি ব্লক করে বা সতর্ক করে। |
| HSTS | একটি হেডার, যা ব্রাউজারকে বলে দেয় যে এখন থেকে আপনার সাইটের জন্য সবসময় HTTPS ব্যবহার করতে হবে। |
| Port 443 | HTTPS-এর আদর্শ পোর্ট (HTTP ব্যবহার করে পোর্ট 80)। |
সাধারণ ভুল ধারণা
- "প্যাডলক মানে সাইট বিশ্বস্ত।" এর মানে সংযোগ ব্যক্তিগত এবং ডোমেইন মেলে। প্রতারকরাও সার্টিফিকেট পায়।
- "শুধু পেমেন্ট পেজের জন্য HTTPS লাগে।" লগইন, ফর্ম বা কুকি আছে এমন যেকোনো পেজের জন্য এটি লাগে, আর প্রায় প্রতিটি অ্যাপেই তা থাকে। তাই সবখানে ব্যবহার করুন।
- "সার্টিফিকেট দামি।" বিনামূল্যের, বিশ্বস্ত সার্টিফিকেট এখন স্ট্যান্ডার্ড, এবং বেশিরভাগ হোস্ট সেগুলো আপনার জন্য পরিচালনা করে।
- "HTTPS দিলে আমার অ্যাপ নিরাপদ।" এটি শুধু সংযোগ নিরাপদ করে। আপনার অ্যাপের সার্ভার-সাইড অনুমতি যাচাই, সিক্রেটের নিরাপদ ব্যবহার ও ইনপুট যাচাই এখনো দরকার। দেখুন AI দিয়ে বানানো অ্যাপের নিরাপত্তা চেকলিস্ট।
- "HTTPS সাইট ধীর করে।" আধুনিক TLS-এর অতিরিক্ত খরচ খুব কম, এবং HTTP/2-এর মতো যেসব ফিচার সাইট দ্রুত করে, ব্রাউজারে সেগুলো সাধারণত HTTPS ছাড়া চলে না।
সাধারণ HTTPS সমস্যা সারানো
| লক্ষণ | সম্ভাব্য কারণ |
|---|---|
| "Your connection is not private" | সার্টিফিকেট এই নির্দিষ্ট ডোমেইন কভার করে না, মেয়াদ শেষ, বা এখনো ইস্যু হয়নি |
www. দিয়ে কাজ করে কিন্তু শুধু ডোমেইন দিয়ে করে না (বা উল্টো) | শুধু একটি নামের জন্য DNS ও সার্টিফিকেট আছে |
| প্যাডলক নেই, কিছু পেজে "Not secure" | Mixed content: একটি ছবি, স্ক্রিপ্ট বা ফন্ট http://-এ লোড হচ্ছে |
| ডোমেইন যুক্ত করার পরপরই সার্টিফিকেট ত্রুটি | DNS এখনো ছড়াচ্ছে, অথবা সামনে থাকা একটি প্রক্সি সার্টিফিকেট যাচাইয়ে বাধা দিচ্ছে |
AI বিল্ডারকে কী চাইবেন
- "নিশ্চিত করো প্রতিটি ছবি, স্ক্রিপ্ট ও ফন্ট HTTPS বা relative URL-এ লোড হয় — কোনো
http://লিংক নয়।" - "সব HTTP ট্র্যাফিক HTTPS-এ redirect করো।"
- "সেশন কুকিতে
SecureওHttpOnlyফ্ল্যাগ সেট করো।" - "প্রতিটি OAuth, পেমেন্ট ও webhook callback URL-এ
https://ব্যবহার করো।" - "আমার কাস্টম ডোমেইনে সার্টিফিকেট ত্রুটি দেখাচ্ছে — হোস্ট কোন DNS রেকর্ড চায়?"
Mythex-এ HTTPS
Mythex-এ কাস্টম ডোমেইন যুক্ত করা একটি Pro ফিচার। আপনি Mythex-এর দেখানো slug.mythex.ai টার্গেটের দিকে একটি CNAME রেকর্ড যোগ করেন, Verify চাপেন, আর Mythex ডোমেইনের জন্য HTTPS স্বয়ংক্রিয়ভাবে ইস্যু করে। ডকসে দুটি সাধারণ সমস্যার সমাধান আছে: আপনার DNS Cloudflare-এ থাকলে রেকর্ডটি "DNS only" (ধূসর মেঘ) রাখুন, proxied নয়, যাতে Mythex সার্টিফিকেট ইস্যু করতে পারে; আর HTTPS পুরোপুরি সেট হওয়ার আগেই DNS যাচাই হতে পারে, তাই কয়েক মিনিট অপেক্ষা করে আবার verify করুন। দেখুন ডকসে কাস্টম ডোমেইন, এবং আমাদের গাইড কাস্টম ডোমেইন যুক্ত করার উপায়।
প্রশ্নোত্তর
HTTP ও HTTPS-এর পার্থক্য কী?
HTTP ব্রাউজার ও ওয়েবসাইটের মধ্যে তথ্য পাঠায় পড়া যায় এমন লেখা হিসেবে। HTTPS হলো HTTP, যা একটি এনক্রিপ্টেড TLS সংযোগে পাঠানো হয়, তাই একই নেটওয়ার্কে থাকা বা পথের মধ্যের মানুষ পাঠানো তথ্য পড়তে বা বদলাতে পারে না, এবং ব্রাউজার যাচাই করতে পারে যে সে আসল সাইটের সঙ্গেই কথা বলছে।
SSL ও TLS কি একই জিনিস?
TLS হলো SSL-এর আধুনিক উত্তরসূরি। SSL-এর সব সংস্করণ পুরোনো ও অনিরাপদ, আর আজকের নিরাপদ ওয়েবসাইটগুলো TLS ব্যবহার করে। অভ্যাসবশত মানুষ এখনো "SSL সার্টিফিকেট" বলে, কিন্তু সার্টিফিকেটগুলো TLS-এর সঙ্গেই ব্যবহৃত হয়।
প্যাডলক দেখালে কি সাইট নিরাপদ?
না। প্যাডলক বোঝায় সংযোগটি এনক্রিপ্টেড এবং সার্টিফিকেটটি ডোমেইনের সঙ্গে মেলে। একটি প্রতারক সাইটেরও বৈধ সার্টিফিকেট থাকতে পারে। এটি শুধু বলে যে সংযোগে কেউ উঁকি দিতে পারছে না, এটি বলে না যে সাইটের মালিক বিশ্বাসযোগ্য।
SSL সার্টিফিকেটের জন্য কি টাকা দিতে হয়?
সাধারণত না। Let's Encrypt-এর মতো বিনামূল্যের, স্বয়ংক্রিয় সার্টিফিকেট কর্তৃপক্ষ এমন সার্টিফিকেট দেয় যা ব্রাউজার বিশ্বাস করে, এবং বেশিরভাগ হোস্টিং প্ল্যাটফর্ম সেগুলো আপনার জন্য নেয় ও নবায়ন করে। পেইড সার্টিফিকেট মূলত অতিরিক্ত সাপোর্ট বা পরিচয় যাচাই যোগ করে।
আমার সাইটে "Not Secure" দেখাচ্ছে কেন?
সাধারণ কারণ হলো সাইটটি https:// ছাড়া http:// দিয়ে খোলা হচ্ছে, সার্টিফিকেটের মেয়াদ শেষ হয়েছে বা সেটি ওই নির্দিষ্ট ডোমেইন কভার করে না, অথবা কোনো পেজ সাধারণ http:// দিয়ে ছবি বা স্ক্রিপ্ট লোড করছে (mixed content)।