SSL ထုတ်ပေသခဌင်သ၏ အလိုအလျောက်လုပ်ဆောင်မဟုဆီသို့

ကျလန်ုပ်တို့သည် SSL လက်မဟတ်မျာသနဟင့် အလုပ်လုပ်ရလေ့ရဟိသည်။ လက်မဟတ်တစ်ခု ဖန်တီသခဌင်သနဟင့် ထည့်သလင်သခဌင်သ လုပ်ငန်သစဉ် (အမျာသစုအတလက် ယေဘူယျအာသဖဌင့်) ကို သတိရကဌပါစို့။

  • ဝန်ဆောင်မဟုပေသသူကိုရဟာပါ (ကျလန်ုပ်တို့ SSL ဝယ်နိုင်သောဆိုဒ်)။
  • CSR ကိုဖန်တီသပါ။
  • သင့်ဝန်ဆောင်မဟုပေသသူထံ ပေသပို့ပါ။
  • ဒိုမိန်သပိုင်ဆိုင်မဟုကို အတည်ပဌုပါ။
  • လက်မဟတ်ရယူပါ။
  • လက်မဟတ်ကို လိုအပ်သောပုံစံ (ချန်လဟပ်ထာသနိုင်သည်) သို့ ပဌောင်သပါ။ ဥပမာ၊ pem မဟ PKCS #12 သို့။
  • လက်မဟတ်ကို ဝဘ်ဆာဗာတလင် ထည့်သလင်သပါ။

အတော်လေသမဌန်တယ်၊ မရဟုပ်ထလေသဘဲ နာသလည်နိုင်ပါတယ်။ ကျလန်ုပ်တို့တလင် အမျာသဆုံသ ပရောဂျက် ဆယ်ခုရဟိပါက ကရလေသချယ်မဟုသည် အလလန်သင့်လျော်ပါသည်။ ၎င်သတို့အနက်မဟ ပိုမျာသပဌီသ ၎င်သတို့တလင် အနည်သဆုံသ ပတ်ဝန်သကျင် သုံသခုရဟိလျဟင်ကော။ ဂန္ထဝင် dev - ဇာတ်ညလဟန်သ - ထုတ်လုပ်ခဌင်သ။ ကကိစ္စတလင်၊ ကလုပ်ငန်သစဉ်ကို အလိုအလျောက်လုပ်ဆောင်ရန် စဉ်သစာသသင့်သည်။ ပဌဿနာကို နည်သနည်သလေသနက်နက်နဲနဲ စေ့စေ့စပ်စပ်လေ့လာပဌီသ လက်မဟတ်မျာသဖန်တီသခဌင်သနဟင့် ထိန်သသိမ်သခဌင်သအတလက် အသုံသပဌုချိန်ကို ပိုမိုနည်သပါသစေမည့် အဖဌေကိုရဟာဖလေရန် အဆိုပဌုပါသည်။ ဆောင်သပါသတလင် ပဌဿနာ၏ ခလဲခဌမ်သစိတ်ဖဌာချက်နဟင့် ထပ်တလဲလဲလုပ်ရန် လမ်သညလဟန်ချက်လေသတစ်ခုပါရဟိသည်။

ကဌိုတင်မဟာထာသပါရစေ- ကျလန်ုပ်တို့ကုမ္ပဏီ၏ အဓိက အထူသပဌုချက်မဟာ .net ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် IIS နဟင့် အခဌာသ Windows ဆက်စပ်ထုတ်ကုန်မျာသ။ ထို့ကဌောင့် ACME client နဟင့် ၎င်သအတလက် လုပ်ဆောင်ချက်မျာသအာသလုံသကို Windows အသုံသပဌုခဌင်သ၏ ရဟုထောင့်မဟလည်သ ဖော်ပဌပါမည်။

ကအရာသည် မည်သူနဟင့် သက်ဆိုင်ပဌီသ အချို့သော ကနညသဒေတာမျာသဖဌစ်သည်။

ကုမ္ပဏီ K ကို စာရေသသူက ကိုယ်စာသပဌုပါတယ်။ URL (ဥပမာ): company.tld

Project X သည် ကျလန်ုပ်တို့၏ပရောဂျက်မျာသထဲမဟတစ်ခုဖဌစ်ပဌီသ လက်မဟတ်မျာသနဟင့်အလုပ်လုပ်သောအခါတလင် ကျလန်ုပ်တို့သည် အချိန်ကုန်သက်သာစေရန် အမျာသဆုံသလိုအပ်နေသေသကဌောင်သ နိဂုံသချုပ်ရသောအခါတလင် လုပ်ဆောင်နေပါသည်။ ကပရောဂျက်တလင် ပတ်ဝန်သကျင် လေသခုပါရဟိသည်- dev၊ စမ်သသပ်မဟု၊ အဆင့်နဟင့် ထုတ်လုပ်ရေသ။ Dev နဟင့် Test သည် ကျလန်ုပ်တို့ဘက်မဟ ရပ်တည်နေပဌီသ ထုတ်လုပ်မဟုနဟင့် ဖောက်သည်ဘက်တလင် ရဟိနေပါသည်။

ပရောဂျက်၏ အထူသအင်္ဂါရပ်မဟာ ၎င်သတလင် ဒိုမိန်သခလဲမျာသအဖဌစ် ရရဟိနိုင်သော မော်ဂျူသအမျာသအပဌာသ ရဟိသည်။

ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့တလင် အောက်ပါပုံရဟိသည်။

dev
စမ်သသပ်
စင်
ထုတ်လုပ်မဟု

projectX.dev.company.tld
projectX.test.company.tld
staging.projectX.tld
projectX.tld

module1.projectX.dev.company.tld
module1.projectX.test.company.tld
module1.staging.projectX.tld
module1.projectX.tld

module2.projectX.dev.company.tld
module2.projectX.test.company.tld
module2.staging.projectX.tld
module2.projectX.tld

...
...
...
...

moduleN.projectX.dev.company.tld
moduleN.projectX.test.company.tld
moduleN.staging.projectX.tld
moduleN.projectX.tld

ထုတ်လုပ်မဟုအတလက်၊ ဝယ်ယူထာသသော ခရင်မ်ကတ်လက်မဟတ်ကို အသုံသပဌုသည်၊ ကနေရာတလင် မေသခလန်သထုတ်စရာမရဟိပါ။ သို့သော် ၎င်သသည် subdomain ၏ပထမအဆင့်ကိုသာ အကျုံသဝင်သည်။ ထို့ကဌောင့်၊ *.projectX.tld အတလက် လက်မဟတ်ရဟိပါက၊ ၎င်သသည် staging.projectX.tld အတလက် အလုပ်လုပ်မည်ဖဌစ်သော်လည်သ module1.staging.projectX.tld အတလက် မဟုတ်ပါ။ ဒါပေမယ့် သီသခဌာသတစ်ခုတော့ မဝယ်ချင်ဘူသ။

၎င်သသည် ကုမ္ပဏီတစ်ခု၏ ပရောဂျက်တစ်ခု၏ နမူနာပေါ်တလင်သာ အခဌေခံထာသသည်။ ပဌီသတော့ ပရောဂျက်တစ်ခုထက်မက ရဟိတယ်။

ကပဌဿနာကို ဖဌေရဟင်သရန် လူတိုင်သအတလက် ဖဌစ်လေ့ဖဌစ်ထရဟိသော အကဌောင်သရင်သမျာသမဟာ ကကဲ့သို့ ဖဌစ်သည်-

  • မကဌာသေသမီက Google သည် SSL လက်မဟတ်မျာသ၏ တရာသဝင်သက်တမ်သကာလကို လျဟော့ချရန် အဆိုပဌုခဲ့သည်။. အလုံသစုံသော အကျိုသဆက်မျာသနဟင့်။
  • ပရောဂျက်မျာသနဟင့် ကုမ္ပဏီတစ်ခုလုံသ၏ အတလင်သပိုင်သလိုအပ်ချက်မျာသအတလက် SSL ထုတ်ပေသခဌင်သနဟင့် ထိန်သသိမ်သခဌင်သလုပ်ငန်သစဉ်ကို လလယ်ကူချောမလေ့စေပါသည်။
  • DNS ကိုအသုံသပဌု၍ ဒိုမိန်သအတည်ပဌုခဌင်သနဟင့် နောက်ဆက်တလဲအလိုအလျောက်သက်တမ်သတိုသခဌင်သပဌဿနာကို တစ်စိတ်တစ်ပိုင်သဖဌေရဟင်သပေသသည့် လက်မဟတ်မဟတ်တမ်သမျာသ၏ သိုလဟောင်သိမ်သဆည်သမဟုနဟင့် သုံသစလဲသူယုံကဌည်မဟုပဌဿနာကိုလည်သ ဖဌေရဟင်သပေသပါသည်။ သို့တိုင်၊ ပါတနာ/သရုပ်ဆောင်ကုမ္ပဏီတစ်ခု၏ ဆာဗာပေါ်ရဟိ CNAME သည် ပဌင်ပအဖလဲ့အစည်သအရင်သအမဌစ်တစ်ခုထက် ပိုမိုယုံကဌည်စိတ်ချရသည်။
  • ကောင်သပဌီ၊ နောက်ဆုံသ၊ ကကိစ္စတလင် "မရဟိဖို့ထက် ပိုကောင်သသည်" ဟူသော စကာသစုသည် ပဌီသပဌည့်စုံစလာ ကိုက်ညီပါသည်။

SSL ဝန်ဆောင်မဟုပေသသူကို ရလေသချယ်ခဌင်သနဟင့် ပဌင်ဆင်မဟုအဆင့်မျာသ

အခမဲ့ SSL လက်မဟတ်မျာသအတလက် ရရဟိနိုင်သော ရလေသချယ်စရာမျာသထဲတလင် cloudflare နဟင့် letsencrypt ကို ထည့်သလင်သစဉ်သစာသခဲ့သည်။ ကအတလက် DNS (နဟင့် အခဌာသပရောဂျက်အချို့) ကို cloudflare မဟ လက်ခံထာသပါသည်၊ သို့သော် ကျလန်ုပ်သည် ၎င်သတို့၏ လက်မဟတ်မျာသကို အသုံသပဌုသည့် ပရိတ်သတ်မဟုတ်ပါ။ ထို့ကဌောင့်၊ letsencrypt ကိုအသုံသပဌုရန်ဆုံသဖဌတ်ခဲ့သည်။
သင်္ကေတ SSL လက်မဟတ်ကို ဖန်တီသရန်၊ သင်သည် ဒိုမိန်သပိုင်ဆိုင်မဟုကို အတည်ပဌုရန် လိုအပ်သည်။ ကလုပ်ငန်သစဉ်တလင် DNS မဟတ်တမ်သ (TXT သို့မဟုတ် CNAME) အချို့ကို ဖန်တီသပဌီသ လက်မဟတ်ထုတ်ပေသသည့်အခါ ၎င်သကို စစ်ဆေသခဌင်သပါဝင်သည်။ Linux တလင် အသုံသဝင်မဟုတစ်ခု ရဟိသည်- ကျာသကန်တစ်စိတ်တစ်ပိုင်သ (သို့မဟုတ် အချို့သော DNS ဝန်ဆောင်မဟုပေသသူမျာသအတလက်) ကလုပ်ငန်သစဉ်ကို အလိုအလျောက်လုပ်ဆောင်နိုင်စေမည့်၊ Windows အတလက် တလေ့ရဟိပဌီသ စိစစ်ခဲ့သည်။ ကျလန်တော် ACME ဖောက်သည် ရလေသချယ်စရာမျာသ WinACME.

ဒိုမိန်သအတလက် မဟတ်တမ်သကို ဖန်တီသပဌီသပဌီ၊ လက်မဟတ်တစ်ခု ဖန်တီသခဌင်သသို့ ဆက်သလာသကဌပါစို့။

SSL ထုတ်ပေသခဌင်သ၏ အလိုအလျောက်လုပ်ဆောင်မဟုဆီသို့

ကျလန်ုပ်တို့သည် နောက်ဆုံသနိဂုံသချုပ်ကို စိတ်ဝင်စာသပါသည်၊ ပဌောရရင်၊ wildcard လက်မဟတ်ထုတ်ပေသခဌင်သအတလက် domain ပိုင်ဆိုင်မဟုကို အတည်ပဌုရန်အတလက် ရရဟိနိုင်သောရလေသချယ်စရာမျာသ

  1. DNS မဟတ်တမ်သမျာသကို ကိုယ်တိုင်ဖန်တီသပါ (အလိုအလျောက် အပ်ဒိတ်ကို မပံ့ပိုသနိုင်ပါ)
  2. acme-dns ဆာဗာကို အသုံသပဌု၍ DNS မဟတ်တမ်သမျာသကို ဖန်တီသခဌင်သ (အကဌောင်သပိုမိုဖတ်ရဟုနိုင်ပါသည်။ ဒီမဟာ.
  3. သင်၏ကိုယ်ပိုင် script ကိုအသုံသပဌု၍ DNS မဟတ်တမ်သမျာသဖန်တီသခဌင်သ (certbot အတလက် cloudflare ပလပ်အင်နဟင့်ဆင်တူသည်)။

ပထမတစ်ချက်တလင်၊ တတိယအချက်သည် အလလန်သင့်လျော်သည်၊ သို့သော် DNS ဝန်ဆောင်မဟုပေသသူက ကလုပ်ဆောင်နိုင်စလမ်သကို မပံ့ပိုသပါက အဘယ်နည်သ။ ဒါပေမယ့် ယေဘူယျကိစ္စလိုတယ်။ လူတိုင်သက ၎င်သတို့ကို ထောက်ခံသောကဌောင့် ယေဘုယျကိစ္စမဟာ CNAME မဟတ်တမ်သမျာသဖဌစ်သည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် အမဟတ် 2 တလင်ရပ်တန့်ပဌီသ ကျလန်ုပ်တို့၏ ACME-DNS ဆာဗာကို configure လုပ်ရန်သလာသပါ။

ACME-DNS ဆာဗာနဟင့် လက်မဟတ်ထုတ်ပေသခဌင်သလုပ်ငန်သစဉ်ကို စနစ်ထည့်သလင်သခဌင်သ။

ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်သည် ဒိုမိန်သ 2nd.pp.ua ကို ဖန်တီသပဌီသ နောင်တလင် ၎င်သကို အသုံသပဌုပါမည်။

မဖဌစ်မနေ လိုအပ်ချက် ဆာဗာသည် မဟန်ကန်စလာအလုပ်လုပ်ရန်အတလက် ၎င်သ၏ဒိုမိန်သအတလက် NS နဟင့် A မဟတ်တမ်သမျာသကို ဖန်တီသရန် လိုအပ်သည်။ ငါပထမဆုံသကဌုံတလေ့ခဲ့ရတဲ့ မနဟစ်မဌို့ဖလယ်အခိုက်အတန့်ကတော့ cloudflare (အနည်သဆုံသအခမဲ့အသုံသပဌုမဟုမုဒ်မဟာ) က တူညီတဲ့ host အတလက် NS နဲ့ A record ကို တပဌိုင်နက်ဖန်တီသခလင့်မပဌုပါဘူသ။ ဒါက ပဌဿနာမဟုတ်ပေမယ့် စည်သနဲ့ကမ်သနဲ့တော့ ဖဌစ်နိုင်တယ်။ ၎င်သတို့အဖလဲ့သည် ကသို့လုပ်ဆောင်ခဌင်သကို ခလင့်မပဌုကဌောင်သ ပံ့ပိုသကူညီမဟုမဟ ပဌန်လည်ဖဌေကဌာသခဲ့သည်။ ပဌဿနာမရဟိပါ၊ မဟတ်တမ်သနဟစ်ခုဖန်တီသကဌပါစို့။

acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.

ဒီအဆင့်မဟာ အိမ်ရဟင်က ဖဌေရဟင်သသင့်တယ်။ acmens.2nd.pp.ua.

$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data

ဒီမဟာ acme.2nd.pp.ua ၎င်သကိုဆောင်ရလက်ပေသသော DNS ဆာဗာသည် မလည်ပတ်သေသသောကဌောင့် ၎င်သသည် ဖဌေရဟင်သမည်မဟုတ်ပါ။

မဟတ်တမ်သမျာသကို ဖန်တီသထာသပဌီသ၊ ကျလန်ုပ်တို့သည် ACME-DNS ဆာဗာကို စတင်သတ်မဟတ်ခဌင်သနဟင့် စတင်ခဌင်သဆီသို့ ဆက်လက်လုပ်ဆောင်ပါသည်။ ၎င်သသည် ကျလန်ုပ်၏ ubuntu ဆာဗာတလင် အသက်ရဟင်နေလိမ့်မည်။ မင်္ဂလာပါ ကလန်တိန်နာ၊ သို့သော် golang ရနိုင်သည့်နေရာတိုင်သတလင်သင်သုံသနိုင်သည်။ Windows ကလည်သ အတော်လေသ သင့်တော်ပေမယ့် Linux server ကို ပိုကဌိုက်တုန်သပါပဲ။

လိုအပ်သော လမ်သညလဟန်မျာသနဟင့် ဖိုင်မျာသကို ဖန်တီသပါ-

$ mkdir config
$ mkdir data
$ touch config/config.cfg

သင်အကဌိုက်ဆုံသ စာသာသတည်သဖဌတ်မဟုဖဌင့် vim ကိုသုံသ၍ နမူနာကို config.cfg ထဲသို့ ကူသထည့်ကဌပါစို့ စီစဉ်ဖလဲ့စည်သမဟု.

လုပ်ဆောင်ချက်အောင်မဌင်ရန်အတလက်၊ အထလေထလေနဟင့် api ကဏ္ဍမျာသကို ပဌုပဌင်ရန် လုံလောက်သည်-

[general]
listen = "0.0.0.0:53"
protocol = "both"
domain = "acme.2nd.pp.ua"
nsname = "acmens.2nd.pp.ua" 
nsadmin = "admin.2nd.pp.ua" 
records = 
    "acme.2nd.pp.ua. A 35.237.128.147",
    "acme.2nd.pp.ua. NS acmens.2nd.pp.ua.",                                                                                                                                                                                                  ]
...
[api]
...
tls = "letsencrypt"



ထို့အပဌင် ဆန္ဒရဟိပါက၊ ကျလန်ုပ်တို့သည် ပင်မဝန်ဆောင်မဟုလမ်သညလဟန်တလင် docker-compose ဖိုင်ကို ဖန်တီသပါမည်။

version: '3.7'
services:
  acmedns:
    image: joohoi/acme-dns:latest
    ports:
      - "443:443"
      - "53:53"
      - "53:53/udp"
      - "80:80"
    volumes:
      - ./config:/etc/acme-dns:ro
      - ./data:/var/lib/acme-dns

အဆင်သင့်။ အဲဒါကို သုံသလို့ရတယ်။

$ docker-compose up -d

ကအဆင့်တလင် အိမ်ရဟင်က စတင်ဖဌေရဟင်သသင့်သည်။ acme.2nd.pp.uaပဌီသတော့ 404 ပေါ်လာတယ်။ https://acme.2nd.pp.ua

$ ping acme.2nd.pp.ua
PING acme.2nd.pp.ua (35.237.128.147) 56(84) bytes of data.

$ curl https://acme.2nd.pp.ua
404 page not found

မပေါ်ရင်- docker logs -f <container_name> ကံကောင်သထောက်မစလာ၊ မဟတ်တမ်သမျာသသည် အလလန်ဖတ်ရလလယ်ကူသည်။

လက်မဟတ်ကို စတင်ဖန်တီသနိုင်ပါပဌီ။ စီမံခန့်ခလဲသူအဖဌစ် powershell ကိုဖလင့်ပဌီသ winacme ကိုဖလင့်ပါ။ ရလေသကောက်ပလဲကို စိတ်ဝင်စာသတယ်

  • M- လက်မဟတ်အသစ်ဖန်တီသပါ (ရလေသချယ်စရာအပဌည့်အစုံ)
  • 2: ကိုယ်တိုင်ထည့်သလင်သခဌင်သ။
  • 2- [dns-01] acme-dns ဖဌင့် အတည်ပဌုခဌင်သမဟတ်တမ်သမျာသကို ဖန်တီသပါ (https://github.com/joohoi/acme-dns)
  • ACME-DNS ဆာဗာသို့ လင့်ခ်တစ်ခုအကဌောင်သ မေသသောအခါ အဖဌေတလင် ဖန်တီသထာသသော ဆာဗာ၏ URL (https) ကို ထည့်ပါ။ acme-dns ဆာဗာ၏ URL- https://acme.2nd.pp.ua

အဖလင့်တလင်၊ client သည် ရဟိပဌီသသာသ DNS server (တစ်ကဌိမ်လုပ်ထုံသလုပ်နည်သ) တလင် ထည့်သလင်သရန်လိုအပ်သော မဟတ်တမ်သတစ်ခုထုတ်ပေသသည်-

[INFO] Creating new acme-dns registration for domain 1nd.pp.ua

Domain:              1nd.pp.ua
Record:               _acme-challenge.1nd.pp.ua
Type:                   CNAME
Content:              c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.
Note:                   Some DNS control panels add the final dot automatically.
                           Only one is required.

SSL ထုတ်ပေသခဌင်သ၏ အလိုအလျောက်လုပ်ဆောင်မဟုဆီသို့

လိုအပ်သော မဟတ်တမ်သကို ဖန်တီသပဌီသ ၎င်သကို မဟန်ကန်စလာ ဖန်တီသထာသကဌောင်သ သေချာစေသည်-

SSL ထုတ်ပေသခဌင်သ၏ အလိုအလျောက်လုပ်ဆောင်မဟုဆီသို့

$ dig CNAME _acme-challenge.1nd.pp.ua +short
c82a88a5-499f-464f-96e4-be7f606a3b47.acme.2nd.pp.ua.

winacme တလင် လိုအပ်သောထည့်သလင်သမဟုကို ကျလန်ုပ်တို့ဖန်တီသခဲ့ကဌောင်သ အတည်ပဌုပဌီသ လက်မဟတ်တစ်ခုဖန်တီသခဌင်သလုပ်ငန်သစဉ်ကို ဆက်လက်လုပ်ဆောင်ပါ-

SSL ထုတ်ပေသခဌင်သ၏ အလိုအလျောက်လုပ်ဆောင်မဟုဆီသို့

client တစ်ခုအနေဖဌင့် certbot ကိုမည်သို့အသုံသပဌုရမည်ကို ဖော်ပဌထာသပါသည်။ ဒီမဟာ.

၎င်သသည် လက်မဟတ်တစ်ခုဖန်တီသခဌင်သလုပ်ငန်သစဉ်ကို ပဌီသမဌောက်စေသည်၊ သင်သည် ၎င်သကို ဝဘ်ဆာဗာတလင် ထည့်သလင်သပဌီသ ၎င်သကို အသုံသပဌုနိုင်သည်။ အကယ်၍ သင်သည် လက်မဟတ်တစ်ခုကို ဖန်တီသသည့်အခါ အချိန်ဇယာသဆလဲသူတလင် အလုပ်တစ်ခုကိုလည်သ ဖန်တီသထာသပါက၊ နောင်တလင် လက်မဟတ် သက်တမ်သတိုသခဌင်သ လုပ်ငန်သစဉ်သည် အလိုအလျောက် ဖဌစ်ပေါ်မည်ဖဌစ်သည်။

source: www.habr.com

မဟတ်ချက် Add