A dh’ ionnsaigh fèin-ghluasad toirt a-mach SSL

Gu math tric feumaidh sinn a bhith ag obair le teisteanasan SSL. Cuimhnichidh sinn air a 'phròiseas a bhith a' cruthachadh agus a 'stàladh teisteanas (sa chùis choitcheann airson a' mhòr-chuid).

  • Lorg solaraiche (làrach far an urrainn dhuinn SSL a cheannach).
  • Cruthaich CSR.
  • Cuir e chun an t-solaraiche.
  • Dearbhaich sealbh fearainn.
  • Faigh teisteanas.
  • Tionndaidh an teisteanas chun fhoirm a tha thu ag iarraidh (roghainneil). Mar eisimpleir, bho pem gu PKCS #12.
  • Stàlaich an teisteanas air an fhrithealaiche lìn.

Gu math luath, furasta agus furasta a thuigsinn. Tha an roghainn seo gu math freagarrach ma tha suas ri dusan pròiseact againn. Dè ma tha barrachd dhiubh ann, agus gu bheil co-dhiù trì àrainneachdan aca? Clasaigeach dev - stèidse - cinneasachadh. Anns a 'chùis seo, is fhiach smaoineachadh air fèin-ghluasad a' phròiseas seo. Tha mi a 'moladh a dhol beagan nas doimhne don duilgheadas agus fuasgladh a lorg a lughdaicheas an ùine a thathar a' cosg air cruthachadh agus cumail suas theisteanasan. Anns an artaigil bidh mion-sgrùdadh air an duilgheadas agus stiùireadh beag air ath-aithris.

Nì mi glèidheadh ​​​​ro làimh: is e prìomh speisealachadh a ’chompanaidh againn .net, agus, a rèir sin, IIS agus feadhainn eile co-cheangailte ri sgriubha. Mar sin, thèid cunntas a thoirt air an neach-dèiligidh ACME agus a h-uile gnìomh air a shon a thaobh cleachdadh uinneagan.

Cò dha a tha e buntainneach agus beagan cùl-fhiosrachaidh

Companaidh K air a riochdachadh leis an ùghdar. URL (mar eisimpleir): company.tld

Is e Pròiseact X aon de na pròiseactan againn, anns an tàinig mi chun cho-dhùnadh gum feum sinn fhathast gluasad a dh’ ionnsaigh sàbhalaidhean ùine as motha nuair a bhios sinn ag obair le teisteanasan. Tha ceithir àrainneachdan aig a’ phròiseact seo: dev, test, stèidse agus cinneasachadh. Tha dev agus deuchainn air ar taobh, tha stèidse agus cinneasachadh air taobh an neach-dèiligidh.

Is e feart den phròiseact gu bheil àireamh mhòr de mhodalan ann a tha rim faighinn mar subdomains.

Is e sin, tha an dealbh a leanas againn:

Dev
deuchainn
A ’seasamh
riochdachaidh

pròiseactX.dev.company.tld
projectX.test.company.tld
stèidse.projectX.tld
pròiseactX.tld

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

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

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

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

Airson cinneasachadh, thathas a’ cleachdadh teisteanas cairt-fiadhaich a chaidh a cheannach, chan eil ceistean an seo. Ach tha e a-mhàin a 'còmhdach a' chiad ìre den subdomain. Mar sin, ma tha teisteanas ann airson *.projectX.tld, obraichidh e airson staging.projectX.tld, ach chan ann airson modal1.staging.projectX.tld. Chan eil mi airson fear air leth a cheannach.

Agus chan eil seo ach air eisimpleir aon phròiseact de aon chompanaidh. Agus chan eil am pròiseact, gu dearbh, na aonar.

Tha na h-adhbharan coitcheann airson dèiligeadh ris a’ chùis seo a’ coimhead rudeigin mar seo:

  • O chionn ghoirid Mhol Google an ùine dligheachd as àirde de theisteanasan SSL a lughdachadh. Leis a h-uile buaidh.
  • Gus pròiseas cur a-mach agus cumail suas SSL a dhèanamh airson feumalachdan taobh a-staigh phròiseactan agus a’ chompanaidh gu h-iomlan.
  • Stòradh meadhanach de chlàran teisteanais, a dh ’fhuasgladh gu ìre an duilgheadas a thaobh dearbhadh fearainn a’ cleachdadh DNS agus ùrachadh fèin-ghluasadach às deidh sin, agus cuideachd a ’fuasgladh cùis earbsa teachdaiche. Ach a dh’ aindeoin sin, tha CNAME nas earbsaiche air frithealaiche a’ chompanaidh com-pàirteach / neach-tiomnaidh na air goireas treas-phàrtaidh.
  • Uill, mu dheireadh, anns a 'chùis seo, tha an abairt "nas fheàrr na bhith agad" a' freagairt gu foirfe.

A’ taghadh Solaraiche SSL agus Ceumannan Ullachaidh

De na roghainnean a bha rim faighinn airson teisteanasan SSL an-asgaidh, chaidh beachdachadh air cloudflare agus letsencrypt. Tha an DNS airson seo (agus cuid de phròiseactan eile) air a chumail le cloudflare, ach chan eil mi dèidheil air a bhith a’ cleachdadh an teisteanasan. Mar sin, chaidh co-dhùnadh letencrypt a chleachdadh.
Gus teisteanas SSL cairt-fhiadhaich a chruthachadh, feumaidh tu dearbhadh gu bheil seilbh air an àrainn. Tha am modh-obrach seo a’ toirt a-steach cruthachadh cuid de chlàr DNS (TXT no CNAME), le dearbhadh às deidh sin nuair a bheir thu seachad teisteanas. Tha goireas aig Linux - certbot, a leigeas leat gu ìre (no gu tur airson cuid de sholaraichean DNS) am pròiseas seo a dhèanamh fèin-ghluasadach. Airson Windows an aon rud bho lorg agus deuchainn roghainnean airson teachdaichean ACME air an do shocraich mi WinACME.

Agus chaidh an clàr airson an àrainn a chruthachadh, gluaisidh sinn air adhart gu bhith a’ cruthachadh teisteanas:

A dh’ ionnsaigh fèin-ghluasad toirt a-mach SSL

Tha ùidh againn anns a’ cho-dhùnadh mu dheireadh, is e sin, na roghainnean a tha rim faighinn airson a bhith a’ dearbhadh seilbh fearainn airson teisteanas cairt-fiadhaich a thoirt seachad:

  1. A’ cruthachadh chlàran DNS le làimh (chan eil taic ri ùrachadh fèin-ghluasadach)
  2. A’ cruthachadh chlàran DNS a’ cleachdadh an fhrithealaiche acme-dns (airson tuilleadh fiosrachaidh, faic an seo.
  3. A’ cruthachadh chlàran DNS a’ cleachdadh an sgriobt agad fhèin (coltach ris a’ plugan cloudflare airson certbot).

Aig a 'chiad sealladh, tha an treas puing gu math freagarrach, ach mura h-eil an solaraiche DNS a' toirt taic don ghoireas seo? Agus feumaidh sinn cùis choitcheann. Agus is e a’ chùis choitcheann clàran CNAME, tha a h-uile duine a ’toirt taic dhaibh. Mar sin, stadaidh sinn aig puing 2, agus thèid sinn gu bhith a’ rèiteachadh ar frithealaiche ACME-DNS.

Pròiseas stèidheachadh frithealaiche ACME-DNS agus toirt seachad teisteanasan

Mar eisimpleir, chruthaich mi an àrainn 2nd.pp.ua, agus cleachdaidh mi e san àm ri teachd.

Riatanas èigneachail airson obrachadh ceart an fhrithealaiche tha cruthachadh chlàran NS agus A airson an àrainn aige. Agus is e a 'chiad mhionaid mì-thlachdmhor a choinnich mi nach eil cloudflare (co-dhiù ann am modh an-asgaidh) a' leigeil leat clàr NS agus A a chruthachadh aig an aon àm airson an aon aoigh. Chan e gur e duilgheadas a tha seo, ach ann an ceangal tha e comasach. Fhreagair luchd-taic nach eil am pannal aca a’ ceadachadh seo a dhèanamh. Chan eil e gu diofar, cruthaichidh sinn dà inntrig:

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

Aig an ìre seo, bu chòir dhuinn fuasgladh fhaighinn air an aoigh acmens.2nd.pp.ua.

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

Ach acme.2nd.pp.ua cha dèan e fuasgladh, leis nach eil am frithealaiche DNS a tha ga fhrithealadh a’ ruith fhathast.

Chaidh na clàran a chruthachadh, gluaisidh sinn air adhart gu bhith a’ stèidheachadh agus a’ tòiseachadh am frithealaiche ACME-DNS. Bidh mi beò air frithealaiche ubuntu ann an docker container, ach faodaidh tu a ruith an àite sam bith far a bheil golang. Tha Windows gu math cuideachd, ach is fheàrr leam fhathast frithealaiche Linux.

Cruthaich na clàran agus na faidhlichean riatanach:

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

Cleachdaidh sinn vim leis an deasaiche teacsa as fheàrr leat agus cuir a-steach an sampall gu config.cfg rèiteachadh.

Airson obair shoirbheachail, tha e gu leòr na h-earrannan coitcheann agus api a cheartachadh:

[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"
…

Cuideachd, gu roghnach, cruthaich faidhle docker-compose ann am prìomh eòlaire na seirbheis:

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

Ready. Faodaidh tu ruith.

$ docker-compose up -d

Aig an ìre seo, bu chòir don aoigh tòiseachadh air fuasgladh acme.2nd.pp.ua, agus nochdadh 404 air 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

Mura nochd seo - docker logs -f <container_name> airson cuideachadh, math, tha na logaichean gu math furasta a leughadh.

Faodaidh sinn tòiseachadh air teisteanas a chruthachadh. Fosgail powershell mar rianadair agus ruith winacme. Tha ùidh againn anns na taghaidhean:

  • M: Cruthaich teisteanas ùr (làn roghainnean)
  • 2: Cuir a-steach làimhe
  • 2: [dns-01] Cruthaich clàran dearbhaidh le acme-dns (https://github.com/joohoi/acme-dns)
  • Nuair a thèid faighneachd dhut mu cheangal ris an fhrithealaiche ACME-DNS, cuir a-steach URL an fhrithealaiche cruthaichte (https) mar fhreagairt. URL an fhrithealaiche acme-dns: https://acme.2nd.pp.ua

Mar fhreagairt, bidh an neach-dèiligidh a’ cur a-mach clàr a dh’ fheumar a chur ris an t-seirbheisiche DNS a th’ ann mar-thà (modh aon-ùine):

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

A dh’ ionnsaigh fèin-ghluasad toirt a-mach SSL

Bidh sinn a’ cruthachadh an inntrig riatanach, agus a’ dèanamh cinnteach gun deach a chruthachadh ceart:

A dh’ ionnsaigh fèin-ghluasad toirt a-mach SSL

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

Bidh sinn a’ dearbhadh gu bheil sinn air an inntrig riatanach a chruthachadh ann an winacme, agus a’ leantainn air adhart leis a’ phròiseas airson teisteanas a chruthachadh:

A dh’ ionnsaigh fèin-ghluasad toirt a-mach SSL

Thathas ag innse mar a chleachdas tu certbot mar neach-dèiligidh an seo.

Cuiridh seo crìoch air a’ phròiseas airson teisteanas a chruthachadh, faodaidh tu a stàladh air frithealaiche lìn agus a chleachdadh. Ma chruthaicheas tu, nuair a chruthaicheas tu teisteanas, gnìomh anns a’ chlàr-ama, an uairsin san àm ri teachd bidh pròiseas ùrachadh an teisteanais a’ tachairt gu fèin-ghluasadach.

Source: www.habr.com

Cuir beachd ann