Si toos ah bixinta SSL

Inta badan waa inaan la shaqeynaa shahaadooyinka SSL. Aynu xasuusanno habka abuurista iyo rakibidda shahaadada (xaaladda guud ee inta badan).

  • Raadi bixiye (goob aan ka iibsan karno SSL).
  • Samee CSR
  • U dir adeeg bixiyahaaga.
  • Xaqiiji lahaanshaha bogga
  • Qaado shahaado.
  • U beddel shahaadada foomka loo baahan yahay (ikhtiyaar). Tusaale ahaan, min pem ilaa PKCS #12.
  • Ku rakib shahaadada mareegaha shabakada

Dhakhso u dhow, ma dhib badan oo la fahmi karo. Doorashadani waa mid ku haboon haddii aan haysano ugu badnaan toban mashruuc. Maxaa dhacaya haddii ay jiraan in ka badan oo iyaga ka mid ah, oo ay leeyihiin ugu yaraan saddex deegaan? Classic dev - diyaarinta - wax soo saarka. Xaaladdan oo kale, waxaa habboon in laga fekero habkan si otomaatig ah. Waxaan soo jeedinayaa in aan wax yar ka sii qotomo dhibaatada oo la helo xal taas oo sii yarayn doonta wakhtiga lagu bixinayo abuurista iyo ilaalinta shahaadooyinka. Maqaalku wuxuu ka koobnaan doonaa falanqaynta dhibaatada iyo hage yar oo ku saabsan ku celcelinta.

Aan hore u sii qabsiyo: takhasuska ugu weyn ee shirkadeena waa .net, iyo, si waafaqsan, IIS iyo alaabada kale ee la xidhiidha Windows. Sidaa darteed, macmiilka ACME iyo dhammaan ficillada loogu talagalay ayaa sidoo kale lagu sifayn doonaa aragtida isticmaalka Windows.

Yaa u ah arrintani khusaysa iyo qaar ka mid ah xogta bilowga ah

Shirkadda K oo uu matalo qoraaga. URL (tusaale): company.tld

Mashruuca X waa mid ka mid ah mashaariicdayada, anigoo ka shaqeynaya taas oo aan ku imid gabagabada inaan wali u baahanahay inaan u dhaqaaqno kaydinta waqtiga ugu badan marka la shaqeynayo shahaadooyinka. Mashruucani waxa uu leeyahay afar deegaan: dev, test, staging and production. Dev iyo imtixaanku waa dhinaceena, diyaarinta iyo wax-soo-saarku waa dhinaca macmiilka.

Muuqaalka gaarka ah ee mashruuca ayaa ah in uu leeyahay tiro badan oo modules ah kuwaas oo loo heli karo sida subdomains.

Taasi waa, waxaan haynaa sawirka soo socda:

Dev
Tijaabi
Diyaarinta
Production

projectX.dev.company.tld
projectX.test.company.tld
habaynta.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

Wax soo saarka, shahaado duurjoogta ah oo la iibsaday ayaa loo isticmaalaa, wax su'aalo ah kama soo baxaan halkan. Laakiin waxay dabooshaa oo kaliya heerka koowaad ee subdomain-ka. Sidaa darteed, haddii ay jirto shahaadada *.projectX.tld, markaas waxay u shaqayn doontaa staging.projectX.tld, laakiin uma shaqaynayso module1.staging.projectX.tld. Laakiin si uun ma rabo inaan iibsado mid gaar ah.

Tanina waxay ku salaysan tahay kaliya tusaale hal mashruuc oo hal shirkad ah. Iyo, dabcan, waxaa jira wax ka badan hal mashruuc.

Sababaha caamka ah ee qof walba uu wax uga qabanayo arrintan waxay u egyihiin sidan:

  • Dhawaan Google ayaa soo jeedisay in la dhimo muddada ugu badan ee ansaxnimada shahaadooyinka SSL. Iyada oo dhammaan cawaaqibka.
  • Fududeynta habka soo saarista iyo ilaalinta SSL ee baahiyaha gudaha ee mashaariicda iyo guud ahaan shirkadda.
  • Kaydinta dhexe ee diiwaannada shahaadada, taas oo qayb ahaan xalisa dhibaatada xaqiijinta domainka iyadoo la adeegsanayo DNS iyo cusboonaysiinta tooska ah ee xigta, iyo sidoo kale xallinta arrinta kalsoonida macmiilka. Weli, CNAME ku jira server-ka shirkadda shuraakada/fuliyaha waa ka aamin badan yahay kheyraadka dhinac saddexaad.
  • Hagaag, ugu dambeyntii, kiiskan weedha "waxaa fiican inaad haysato intii aadan haysan" ayaa si fiican ugu habboon.

Doorashada Bixiyaha SSL iyo Talaabooyinka Diyaarinta

Waxaa ka mid ah fursadaha jira ee shahaadooyinka SSL ee bilaashka ah, Cloudflare iyo letsencrypt ayaa la tixgeliyey. DNS-ka tan (iyo qaar ka mid ah mashaariicda kale) waxaa martigeliyay Cloudflare, laakiin taageere uma ihi isticmaalka shahaadooyinkooda. Sidaa darteed, waxaa la go'aamiyay in la isticmaalo letsencrypt.
Si aad u abuurto caddayn SSL shahaado, waxaad u baahan tahay inaad xaqiijiso lahaanshaha bogga. Habkani waxa uu ku lug leeyahay abuurista qaar ka mid ah diiwaanka DNS (TXT ama CNAME), ka dibna la xaqiijiyo marka la bixinayo shahaadada. Linux waxay leedahay utility - cadeyn, kaas oo kuu ogolaanaya inaad qayb ahaan (ama gebi ahaanba qaar ka mid ah bixiyeyaasha DNS) si otomaatig ah u sameyso habkan. Daaqadaha ka helay oo la xaqiijiyay Ikhtiyaarada macmiilka ACME ee aan la degay WinACME.

Oo diiwaanka domain-ka ayaa la sameeyay, aynu u gudubno abuurista shahaado:

Si toos ah bixinta SSL

Waxaan xiisaynaynaa gabagabada u dambaysa, kuwaas oo ah, fursadaha jira ee lagu xaqiijinayo lahaanshaha domain ee soo saarista shahaado duurjoogta ah:

  1. U samee diiwaanka DNS gacanta (cusbooneysii si toos ah lama taageero)
  2. Abuuritaanka diiwaanada DNS adoo isticmaalaya acme-dns server (waxaad wax badan ka akhriyi kartaa halkan.
  3. Abuuritaanka diiwaannada DNS adoo isticmaalaya qoraalkaaga (oo la mid ah pluginflare-ka certbot).

Jaleecada hore, qodobka saddexaad waa ku habboon yahay, laakiin maxaa dhacaya haddii bixiyaha DNS uusan taageerin shaqadan? Laakiin waxaan u baahanahay kiis guud. Kiis guudna waa diiwaannada CNAME, maadaama qof walba uu taageersan yahay. Sidaa darteed, waxaan joogsaneynaa barta 2 oo aan u tagnay si aan u habeyno server-keena ACME-DNS.

Dejinta server-ka ACME-DNS iyo habka bixinta shahaadada

Tusaale ahaan, waxaan sameeyay domain 2nd.pp.ua, waxaana isticmaali doona mustaqbalka.

Shuruudaha qasabka ah Si uu serverku si sax ah u shaqeeyo, waa lagama maarmaan in la abuuro diiwaanka NS iyo A ee domainkiisa. Iyo daqiiqaddii ugu horreysay ee aan fiicneyn ee aan la kulmay waa in Cloudflare (ugu yaraan qaabka isticmaalka bilaashka ah) uusan kuu ogolaaneynin inaad isku mar abuurto NS iyo rikoorka isla martigeliyaha. Ma aha in tani ay tahay dhibaato, laakiin marka la isku xidho waa suurtogal. Taageeradu waxay ku jawaabtay in guddigoodu aanu ogolayn in sidan la sameeyo. Dhib malahan, aynu samayno laba diiwaan:

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

Marxaladdan, martigeliyahayagu waa inuu xalliyaa acmens.2nd.pp.ua.

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

Laakiin acme.2nd.pp.ua ma xallin doono, maadaama server-ka DNS ee u adeegaya aanu weli shaqayn.

Diiwaanada waa la sameeyay, waxaan sii wadeynaa dejinta iyo soo saarista server-ka ACME-DNS. Waxay ku noolaan doontaa server-kayga ubuntu gudaha docker weel, laakiin waxaad ku wadi kartaa meel kasta oo golang laga heli karo. Windows sidoo kale waa ku habboon yahay, laakiin weli waxaan doorbidayaa server Linux ah.

Samee hagaha lagama maarmaanka ah iyo faylasha:

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

Aan u isticmaalno vim tafatiraha qoraalka aad jeceshahay oo ku dheji muunadda config.cfg habaynta.

Hawlgalka guuleysta, waa ku filan in la saxo qaybaha guud iyo 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"
…

Sidoo kale, haddii la rabo, waxaanu ku abuuri doonaa faylal ka kooban docker-ka hagaha adeega ugu muhiimsan:

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

Diyaar. Waad maamuli kartaa

$ docker-compose up -d

Marxaladdan martigeliyaha waa inuu bilaabo inuu xalliyo acme.2nd.pp.ua, oo 404 ayaa ka soo muuqday 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

Haddii tani aysan muuqan - docker logs -f <container_name> si loo caawiyo, nasiib wanaag, logu waa wax la akhriyi karo.

Waxaan bilaabi karnaa abuurista shahaadada. Furo powershell maamule ahaan oo wad winacme Waxaan daneyneynaa doorashooyinka:

  • M: Abuur shahaado cusub (doorashooyinka buuxa)
  • 2:Guriga gacanta
  • 2: [dns-01] Ku samee diiwaanada xaqiijinta acme-dns (https://github.com/joohoi/acme-dns)
  • Marka la waydiiyo wax ku saabsan isku xirka server-ka ACME-DNS, geli URL server-ka la sameeyay (https) jawaabta. URL ee server-ka acme-dns: https://acme.2nd.pp.ua

Furitaanka, macmiilku wuxuu soo saaraa rikoor u baahan in lagu daro server-ka DNS ee jira (hal mar):

[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.

Si toos ah bixinta SSL

Waxaan abuurnaa diiwaanka lagama maarmaanka ah waxaanan hubineynaa in si sax ah loo abuuray:

Si toos ah bixinta SSL

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

Waxaan xaqiijineynaa inaan abuurnay galitaanka loo baahan yahay ee winacme, oo aan sii wadno habka abuurista shahaadada:

Si toos ah bixinta SSL

Sida loo isticmaalo certbot macmiil ahaan ayaa lagu sifeeyay halkan.

Tani waxay dhamaystiraysaa habka abuurista shahaadada; waxaad ku dhejin kartaa server-ka shabakada oo aad isticmaali kartaa. Haddii, marka la abuurayo shahaado, waxaad sidoo kale ku abuurtaa hawl jadwaleeyaha, ka dibna mustaqbalka habka cusboonaysiinta shahaadada ayaa si toos ah u dhici doonta.

Source: www.habr.com

Add a comment