HTTPS နှင့် SSL ဆိုတာ ဘာလဲ? Website လုံခြုံပုံကို ရိုးရိုးရှင်းရှင်း ရှင်းပြချက်
HTTPS ဆိုတာ browser တွေက website တွေနဲ့ ဆက်သွယ်သုံးတဲ့ protocol HTTP ရဲ့ လုံခြုံတဲ့ ဗားရှင်း ဖြစ်ပါတယ်။ Request နဲ့ response တိုင်းကို TLS (Transport Layer Security) နဲ့ ကုဒ်ဝှက်ထားတဲ့ ဆက်သွယ်မှုထဲ ထည့်ထားတာမို့ visitor နဲ့ website ကြားက မည်သူမှ ပို့နေတာကို ဖတ်ခြင်း သို့မဟုတ် ပြောင်းခြင်း မလုပ်နိုင်ပါဘူး။ SSL ဆိုတာ TLS က အစားထိုးခဲ့တဲ့ အတူတူ idea ရဲ့ အဟောင်းနာမည် ဖြစ်ပြီး ဒါကြောင့် လူတွေက "SSL certificate" ဟု ဆက်ခေါ်နေကြတာ ဖြစ်ပါတယ်။
AI နဲ့ တည်ဆောက်တဲ့အခါ HTTPS ဘာကြောင့် အရေးကြီးလဲ
သင် publish လုပ်တဲ့ app တိုင်းကို HTTPS နဲ့ ပေးရပါမယ်။ ဒါဟာ ကောင်းမွန်တဲ့ လေ့ကျင့်မှု တစ်ခုတင်မဟုတ်ပါဘူး။
- Browser တွေက အဲဒါကို မျှော်လင့်တယ်။ Plain HTTP ပေါ်က site တွေကို "Not secure" ဟု အမှတ်အသားတပ်ပြီး location access၊ camera နဲ့ microphone၊ offline app အတွက် service worker စတဲ့ browser feature အချို့ဟာ လုံခြုံတဲ့ (HTTPS) စာမျက်နှာတွေမှာသာ ယေဘုယျအားဖြင့် အလုပ်လုပ်ပါတယ်။
- Login နှင့် form များ။ HTTPS မရှိရင် password၊ session cookie နဲ့ form ဒေတာတွေ ဖတ်လို့ရတဲ့ စာသားအဖြစ် ခရီးသွားပါတယ်။ တူညီတဲ့ café Wi-Fi ပေါ်ရှိသူ တစ်ယောက်က ဖမ်းယူနိုင်ပါတယ်။
- ငွေပေးချေမှုနှင့် third party များ။ Payment provider တွေ၊ OAuth sign-in နဲ့ API အများအပြားက HTTPS redirect နဲ့ callback URL တွေ လိုအပ်ပါတယ်။
- ယုံကြည်မှုနဲ့ search။ Visitor တွေက သတိပေးချက်ကို သတိထားမိပြီး Google က HTTPS ကို ranking signal တစ်ခုအဖြစ် သတ်မှတ်တယ်လို့ ပြောထားပါတယ်။
ကောင်းတဲ့ သတင်းကတော့ ခေတ်မီ hosting platform အများစုမှာ HTTPS ကို အလိုအလျောက် သတ်မှတ်ပေးထားပါတယ်။ သင်လိုအပ်တာက custom domain သို့မဟုတ် mixed-content သတိပေးချက် ပျက်ယွင်းတဲ့အခါ ပြင်နိုင်ဖို့ အစိတ်အပိုင်းတွေကို နားလည်ထားဖို့ပါပဲ။
နေ့စဉ်ဘဝ နမူနာ
Plain HTTP နဲ့ ဒေတာ ပို့တာက ပို့စ်ကတ်ကို ပို့သလိုပါပဲ။ ကိုင်တွယ်တဲ့ ပို့စ်မန်တိုင်းက စာကို ဖတ်နိုင်ပြီး မက်ဆေ့ချ်ကိုတောင် ပြောင်းနိုင်ပါတယ်။
HTTPS ကတော့ အထောက်အထား စစ်ဆေးပြီးမှ ပိတ်ထားတဲ့ လုံခြုံတဲ့ စာအိတ်ကို ပို့သလိုပါ။ Certificate က အဲဒီ ID ကတ် ဖြစ်ပြီး domain ကို တကယ် ထိန်းချုပ်တယ်ဆိုတာ စစ်ဆေးပြီးမှ ယုံကြည်ရတဲ့ အာဏာပိုင် (certificate authority) က ထုတ်ပေးတာပါ။ Encryption က ပိတ်ထားတဲ့ စာအိတ် ဖြစ်ပါတယ်။ ID က လိပ်စာမှန်ကို ပို့နေကြောင်း သက်သေပြပြီး စာအိတ်က အကြောင်းအရာကို လျှို့ဝှက်ထားပါတယ်။
HTTPS ဘယ်လို အလုပ်လုပ်လဲ ရိုးရိုးရှင်းရှင်း
Browser က https://shop.example.com ကို ဖွင့်ရင်-
- နှုတ်ဆက်ခြင်း။ Browser က ချိတ်ဆက်ပြီး ပံ့ပိုးတဲ့ ကုဒ်ဝှက်နည်းတွေကို ပြောပါတယ်။
- Certificate။ Server က သူ့ certificate ကို ပို့ပါတယ်၊ ၎င်းက "ဒီ key က
shop.example.comပိုင်ပါတယ်" လို့ ဆိုပြီး certificate authority က လက်မှတ်ထိုးထားပါတယ်။ - စစ်ဆေးခြင်း။ Browser က ယုံကြည်ပြီးသား authority တွေနဲ့ လက်မှတ်ကို စစ်ဆေးပြီး certificate သက်တမ်းမကုန်သေးကြောင်း၊ domain ကိုက်ညီကြောင်း စစ်ပါတယ်။
- Key များ။ Browser နဲ့ server က ဒီ session အတွက် secret key အသစ်ကို ဖွင့်ပြောမှတ်တမ်းမတင်ဘဲ သဘောတူကြပါတယ်။
- ကုဒ်ဝှက်ထားသော စကားဝိုင်း။ Request နဲ့ response အားလုံး၊ စာမျက်နှာများ၊ form ဒေတာ၊ cookie တွေ အားလုံး ယခု ကုဒ်ဝှက်ပြီး သွားလာပါပြီ။
ဒီ TLS handshake ဟာ မီလီစက္ကန့် အနည်းငယ်သာ ကြာပြီး အလိုအလျောက် ဖြစ်ပါတယ်။ Visitor က padlock အိုင်ကွန် (သို့မဟုတ် browser အချို့မှာ ကြားနေ site-info အိုင်ကွန်) ကိုသာ မြင်ရပါတယ်။
HTTPS က ဘာကို ကာကွယ်ပြီး ဘာကို မကာကွယ်လဲ
| ကာကွယ်သည် | မကာကွယ်ပါ |
|---|---|
| Browser နဲ့ server ကြား ခရီးလမ်းပေါ်ရှိ ဒေတာ | Server ပေါ်ရောက်ပြီး သို့မဟုတ် database ထဲရောက်ပြီးနောက် ဒေတာ |
| Public Wi-Fi ပေါ်က ချောင်းကြည့်မှု | ရန်ရှိသော သို့မဟုတ် လိမ်လည်တဲ့ website |
| လမ်းကြောင်းတလျှောက် စာမျက်နှာကို ပြောင်းခြင်း | သင့် app ရဲ့ bug များ၊ ဥပမာ permission စစ်ဆေးချက် မရှိခြင်း |
| ပို့နေစဉ် cookie နဲ့ password များ | အားနည်းတဲ့ password များ သို့မဟုတ် ယိုစိမ့်ခဲ့တဲ့ API key များ |
HTTPS က request တွေရဲ့ အကြောင်းအရာ ကို ကုဒ်ဝှက်ပေးပါတယ်၊ page path နဲ့ query string အပါအဝင်ပါ။ သို့သော် သင်ဝင်ကြည့်တဲ့ domain အမည်ကို ခရီးလမ်းက network တွေက များသောအားဖြင့် မြင်နေဆဲ ဖြစ်ပါတယ်။ ဒါကြောင့် URL ထဲမှာ ကိုယ်ရေးကိုယ်တာ ဒေတာ မထည့်ပါနဲ့၊ URL တွေက log နဲ့ browser history ထဲ ရောက်သွားတတ်လို့ပါ။
နမူနာ: custom domain ချိတ်ဆက်ခြင်း
သင့်ရဲ့ booking app ကို book.myyogastudio.com မှာ ထားချင်တယ်ဆိုပါစို့-
book.myyogastudio.comကို သင့် host ဆီ ညွှန်ပြတဲ့ DNS record တစ်ခု ထည့်ပါ။ domain နှင့် DNS အလုပ်လုပ်ပုံ ကို ကြည့်ပါ။- Host က အဲဒီ နာမည်ကို ထိန်းချုပ်တယ်ဆိုတာ certificate authority ကို သက်သေပြပါတယ်- များသောအားဖြင့် domain ပေါ်က challenge တစ်ခုကို ပြန်ဖြေခြင်းဖြင့် certificate ကို လက်ခံရရှိပါတယ်။
- Host က တပ်ဆင်ပြီး သက်တမ်းမကုန်ခင် အလိုအလျောက် သက်တမ်းတိုးပေးပါတယ်။ Certificate တွေကို ရည်ရွယ်ချက်အရ သက်တမ်းတို ထားတာမို့ အလိုအလျောက် သက်တမ်းတိုးခြင်း အရေးကြီးပါတယ်။
http://book.myyogastudio.comကို ဝင်ရောက်သူတွေhttps://သို့ redirect ဖြစ်ပါတယ်။
အဆင့် ၁ မှားနေရင်- ဥပမာ record က တခြားနေရာကို ညွှန်ပြနေရင် သို့မဟုတ် ရှေ့မှာ proxy ရှိနေရင် အဆင့် ၂ ပျက်ကျပြီး visitor တွေ certificate error ကို မြင်ရပါလိမ့်မယ်။ custom domain ချိတ်ဆက်ခြင်း မှာ လူတွေ အများဆုံး ကြုံတွေ့တဲ့ HTTPS ပြဿနာ ဖြစ်ပါတယ်။
အဓိက အသုံးအနှုန်းများ
| အသုံးအနှုန်း | အဓိပ္ပာယ် |
|---|---|
| TLS | Transport Layer Security၊ HTTPS အောက်ရှိ ကုဒ်ဝှက်နည်း protocol |
| SSL | Secure Sockets Layer၊ TLS ရဲ့ ဟောင်းနွမ်းတဲ့ ရှေ့ဆက်၊ နာမည်သာ ကျန်နေသေးတယ် |
| Certificate | Domain ကို public key နဲ့ ချိတ်ဆက်ပေးတဲ့ လက်မှတ်ထိုးထားတဲ့ ဖိုင် |
| Certificate authority (CA) | Certificate ထုတ်ပေးဖို့ browser တွေ ယုံကြည်တဲ့ အဖွဲ့အစည်း၊ ဥပမာ Let's Encrypt |
| Domain validation (DV) | Domain ကို ထိန်းချုပ်တယ်ဆိုတာ သက်သေပြတဲ့ certificate- site အများစု သုံးတာ |
| Wildcard certificate | အဆင့်တစ်ဆင့်အထိ subdomain အားလုံးကို ဖုံးထားတယ်၊ ဥပမာ *.example.com |
| Mixed content | HTTPS စာမျက်နှာက resource အချို့ကို plain HTTP ဖြင့် load လုပ်ခြင်း။ Browser က ပိတ်သို့မဟုတ် သတိပေးတယ် |
| HSTS | ထိုအချိန်မှစ၍ သင့် site ကို အမြဲ HTTPS နဲ့ သုံးဖို့ browser ကို ပြောတဲ့ header |
| Port 443 | HTTPS အတွက် စံ port (HTTP က port 80 သုံးတယ်) |
အမှားထင်မှတ်ချက်များ
- "Padlock ရှိရင် site ယုံကြည်လို့ရတယ်။" ဒါက ဆက်သွယ်မှု ပုဂ္ဂိုလ်ရေးကိုင်ဖြစ်ပြီး domain ကိုက်ညီတယ်လို့ ဆိုလိုတာပါ။ လိမ်လည်သူတွေလည်း certificate ရတတ်ပါတယ်။
- "HTTPS က ငွေပေးချေမှု စာမျက်နှာအတွက်သာ လိုတယ်။" Login၊ form သို့မဟုတ် cookie ပါတဲ့ စာမျက်နှာတိုင်းလိုပါတယ်- app အများစုက ဒါပါပဲ။ နေရာတိုင်းမှာ သုံးပါ။
- "Certificate တွေက ဈေးကြီးတယ်။" အခမဲ့ ယုံကြည်ရတဲ့ certificate တွေက စံဖြစ်ပြီး host အများစုက သင့်အတွက် စီမံပေးပါတယ်။
- "HTTPS က app ကို လုံခြုံစေတယ်။" ဆက်သွယ်မှုကို လုံခြုံစေတာပါ။ သင့် app ဟာ server ဘက်မှ permission စစ်ဆေးချက်၊ လျှို့ဝှက်ချက် ကိုင်တွယ်မှုနဲ့ input validation လိုအပ်နေဆဲပါ။ AI-built app များအတွက် လုံခြုံရေး checklist ကို ကြည့်ပါ။
- "HTTPS က site ကို နှေးစေတယ်။" ခေတ်မီ TLS က overhead နည်းနည်းသာ ထည့်ပြီး site ကို မြန်စေတဲ့ HTTP/2 လို feature တွေက browser မှာ HTTPS လိုအပ်တာ များပါတယ်။
အဖြစ်များတဲ့ HTTPS ပြဿနာများ ပြင်ဆင်ခြင်း
| လက္ခဏာ | ဖြစ်နိုင်တဲ့ အကြောင်းရင်း |
|---|---|
| "Your connection is not private" | Certificate က ဒီ domain အတိအကျ မဖုံးထားခြင်း၊ သက်တမ်းကုန်ခြင်း သို့မဟုတ် မထုတ်ရသေးခြင်း |
www. မှာ အလုပ်လုပ်ပေမဲ့ bare domain မှာ မလုပ် (သို့မဟုတ် ပြောင်းပြန်) | နာမည်တစ်ခုတည်းမှာသာ DNS နဲ့ certificate ရှိခြင်း |
| Padlock မရှိခြင်း၊ စာမျက်နှာအချို့မှာ "Not secure" | Mixed content- ပုံ၊ script သို့မဟုတ် font ကို http:// ဖြင့် load လုပ်ခြင်း |
| Domain ချိတ်ပြီးချက် certificate error | DNS ကြွေးကြော်နေဆဲ (propagate) သို့မဟုတ် ရှေ့က proxy က certificate စစ်ဆေးမှုကို ပိတ်ထားခြင်း |
သင့် AI builder ကို ဘာတောင်းဆိုရမလဲ
- "ပုံ၊ script နဲ့ font အားလုံး HTTPS သို့မဟုတ် relative URL ဖြင့်သာ load လုပ်အောင် လုပ်ပါ-
http://link တစ်ခုမှ မရှိစေနဲ့။" - "HTTP traffic အားလုံးကို HTTPS သို့ redirect လုပ်ပါ။"
- "Session cookie တွေကို
Secureနဲ့HttpOnlyflag တွေနဲ့ သတ်မှတ်ပါ။" - "OAuth၊ payment နဲ့ webhook callback URL အားလုံးအတွက်
https://သုံးပါ။" - "ကျွန်တော့် custom domain မှာ certificate error ပြနေတယ်- host က ဘယ် DNS record ကို မျှော်လင့်လဲ?"
Mythex မှာ HTTPS
Mythex မှာ custom domain ချိတ်ဆက်တဲ့အခါ (Pro feature) Mythex က ပြတဲ့ slug.mythex.ai target ကို ညွှန်ပြတဲ့ CNAME record တစ်ခု ထည့်ပြီး Verify ကို နှိပ်ပါ၊ Mythex က domain အတွက် HTTPS ကို အလိုအလျောက် ထုတ်ပေးပါတယ်။ Docs မှာ အဖြစ်အများဆုံး နှစ်ခု ပြထားပါတယ်- DNS က Cloudflare မှာရှိရင် record ကို proxied မဟုတ်ဘဲ "DNS only" (grey cloud) ထားပါ၊ Mythex က certificate ထုတ်နိုင်အောင်ပါ။ နောက် DNS က HTTPS အပြည့်မပြီးခင် verify လုပ်နိုင်လို့ မိနစ်အနည်းငယ် စောင့်ပြီး ထပ် verify လုပ်ပါ။ docs မှာ custom domains ကို ကြည့်ပါ၊ ကျွန်တော်တို့ရဲ့ custom domain ချိတ်ဆက်နည်း လမ်းညွှန်ကိုလည်း ကြည့်ပါ။
မေးခွန်းများ
HTTP နဲ့ HTTPS ကြား ခြားနားချက် ဘာလဲ?
HTTP က browser နဲ့ website ကြား ဒေတာကို ဖတ်လို့ရတဲ့ စာသားအဖြစ် ပို့ပါတယ်။ HTTPS ကတော့ TLS ကုဒ်ဝှက်ထားတဲ့ ဆက်သွယ်မှုကနေ ပို့တဲ့ HTTP ဖြစ်ပြီး network တူတူပေါ်ရှိသူတွေ သို့မဟုတ် လမ်းကြောင်းတလျှောက်ရှိသူတွေက ပို့နေတာကို ဖတ်ခြင်း သို့မဟုတ် ပြောင်းခြင်း မလုပ်နိုင်ပါဘူး၊ browser ကလည်း ဆက်သွယ်နေတာ အစစ်အမှန် site ဟုတ်မဟုတ် စစ်ဆေးနိုင်ပါတယ်။
SSL နဲ့ TLS တူလား?
TLS ဆိုတာ SSL ရဲ့ ခေတ်မီ ဆက်ခံသူ ဖြစ်ပါတယ်။ SSL ဗားရှင်းအားလုံး ဟောင်းနွမ်းပြီး မလုံခြုံတော့ပါဘူး၊ ယနေ့ လုံခြုံတဲ့ website တွေက TLS ကို သုံးပါတယ်။ လူတွေက အကျင့်အရ "SSL certificate" ဟု ဆက်ခေါ်ကြဆဲဖြစ်ပေမဲ့ certificate တွေကို TLS နဲ့ အတူ သုံးကြပါတယ်။
Padlock က website လုံခြုံတယ်လို့ ဆိုလိုသလား?
မဟုတ်ပါဘူး။ Padlock က ဆက်သွယ်မှု ကုဒ်ဝှက်ထားပြီး certificate က domain နဲ့ ကိုက်ညီကြောင်း ပြတာပါ။ လိမ်လည်တဲ့ site တစ်ခုမှာလည်း မှန်ကန်တဲ့ certificate ရှိနိုင်ပါတယ်။ ဆက်သွယ်မှုကို ဘယ်သူမှ ချောင်းကြည့်လို့ မရကြောင်း ပြတာပါ၊ site ပိုင်ရှင်ကို ယုံကြည်လို့ရကြောင်း မဟုတ်ပါဘူး။
SSL certificate အတွက် ငွေပေးရလား?
များသောအားဖြင့် မလိုပါဘူး။ Let's Encrypt လို အခမဲ့ အလိုအလျောက် certificate authority တွေက browser တွေ ယုံကြည်တဲ့ certificate တွေ ထုတ်ပေးပြီး hosting platform အများစုက သင့်အတွက် ရယူပေးပြီး သက်တမ်းတိုးပေးပါတယ်။ ငွေပေးရတဲ့ certificate တွေက အဓိကအားဖြင့် support သို့မဟုတ် အပို identity စစ်ဆေးမှု ထည့်ပေးပါတယ်။
ကျွန်တော့် site က ဘာလို့ Not Secure လို့ ပြနေတာလဲ?
အဖြစ်အများဆုံး အကြောင်းရင်းတွေက site ကို https:// အစား http:// ဖြင့် ဖွင့်ထားခြင်း၊ သက်တမ်းကုန်သွားတဲ့ သို့မဟုတ် ထိုတိကျတဲ့ domain ကို မဖုံးထားတဲ့ certificate၊ သို့မဟုတ် စာမျက်နှာက ပုံ သို့မဟုတ် script တွေကို plain http:// ဖြင့် load လုပ်ခြင်း (mixed content) တို့ဖြစ်ပါတယ်။