Mankany amin'ny automation ny famoahana SSL

Matetika isika dia tsy maintsy miasa miaraka amin'ny fanamarinana SSL. Andeha hotsaroantsika ny dingana amin'ny famoronana sy fametrahana taratasy fanamarinana (amin'ny tranga ankapobeny ho an'ny ankamaroany).

  • Mitadiava mpamatsy (vohikala iray ahafahantsika mividy SSL).
  • Mamorona CSR.
  • Alefaso any amin'ny mpamatsy anao izany.
  • Hamarino ny tompon'ny sehatra.
  • Mahazoa taratasy fanamarinana.
  • Hanova ny taratasy fanamarinana ho amin'ny endrika takiana (tsy voatery). Ohatra, avy amin'ny pem mankany PKCS #12.
  • Apetraho eo amin'ny mpizara tranonkala ny taratasy fanamarinana.

Somary haingana, tsy sarotra ary azo takarina. Ity safidy ity dia mety tsara raha manana tetikasa folo ambony indrindra isika. Ahoana raha betsaka kokoa izy ireo, ary manana tontolo telo farafahakeliny? Classic dev - staging - famokarana. Amin'ity tranga ity dia ilaina ny mieritreritra momba ny automating ity dingana ity. Manoro hevitra aho ny handalina lalindalina kokoa ny olana ary hitady vahaolana izay hanamaivanana ny fotoana lany amin'ny famoronana sy fikojakojana ny taratasy fanamarinana. Ny lahatsoratra dia ahitana famakafakana ny olana sy torolalana kely amin'ny famerimberenana.

Avelao aho hanao famandrihana mialoha: ny .net no tena fanasokajiana ny orinasanay, ary, araka izany, ny IIS sy ireo vokatra hafa mifandraika amin'ny Windows. Noho izany, ny mpanjifa ACME sy ny hetsika rehetra momba izany dia holazaina amin'ny fomba fijery amin'ny fampiasana Windows.

Ho an'iza izany ary ny angon-drakitra voalohany

Orinasa K nosoloin'ny mpanoratra. URL (ohatra): company.tld

Ny tetikasa X dia iray amin'ireo tetikasanay, raha niasa tamin'izay aho nanatsoaka hevitra fa mbola mila mandroso mankany amin'ny fitsitsiana fotoana ambony indrindra isika rehefa miasa miaraka amin'ny fanamarinana. Ity tetikasa ity dia manana tontolo efatra: dev, fitsapana, fampisehoana ary famokarana. Ny dev sy ny fitsapana dia eo aminay, ny sehatra sy ny famokarana dia eo amin'ny lafiny mpanjifa.

Ny endri-javatra manokana amin'ny tetikasa dia ny manana modules marobe izay azo alaina ho subdomains.

Izany hoe manana ity sary manaraka ity isika:

Dev
fitsapana
Staging
Production

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

Ho an'ny famokarana dia ampiasaina ny taratasy fanamarinana wildcard novidina, tsy misy fanontaniana mipetraka eto. Saingy mandrakotra ny ambaratonga voalohany amin'ny subdomain ihany. Noho izany, raha misy taratasy fanamarinana ho an'ny *.projectX.tld, dia mety ho an'ny staging.projectX.tld izany, fa tsy ho an'ny module1.staging.projectX.tld. Saingy tsy te hividy iray manokana aho.

Ary izany dia mifototra amin'ny ohatra iray amin'ny tetikasa iray amin'ny orinasa iray. Ary mazava ho azy fa misy tetikasa mihoatra ny iray.

Ny antony iraisan'ny rehetra hamahana ity olana ity dia toy izao:

  • Vao haingana Nanolo-kevitra ny hampihenana ny fe-potoana manankery ambony indrindra amin'ny fanamarinana SSL i Google. Miaraka amin'ny vokany rehetra.
  • Manamora ny fizotran'ny famoahana sy fitazonana SSL ho an'ny filan'ny tetikasa sy ny orinasa manontolo.
  • Ny fitehirizana ny firaketana an-tsoratra fanamarinana foibe, izay mamaha ny olan'ny fanamarinana sehatra amin'ny alΓ lan'ny DNS sy ny fanavaozana mandeha ho azy manaraka, ary mamaha ny olan'ny fahatokisan'ny mpanjifa ihany koa. Na izany aza, ny CNAME amin'ny lohamilin'ny orinasa mpiara-miasa/mpanatontosa dia azo itokisana kokoa noho ny loharanon'ny antoko fahatelo.
  • Eny ary, farany, amin'ity tranga ity, ny fehezan-teny hoe "aleo manana toy izay tsy manana" dia mifanaraka tsara.

Misafidiana Mpanome SSL sy dingana fanomanana

Anisan'ireo safidy azo alaina ho an'ny fanamarinana SSL maimaim-poana, cloudflare ary letsencrypt no nodinihina. Ny DNS ho an'ity (sy ny tetikasa hafa) dia nampiantranoin'ny cloudflare, saingy tsy mpankafy ny fampiasana ny mari-pankasitrahana aho. Noho izany dia nanapa-kevitra ny hampiasa letsencrypt.
Mba hamoronana mari-pankasitrahana SSL wildcard dia mila manamafy ny fananana domain ianao. Ity dingana ity dia misy ny famoronana rakitra DNS (TXT na CNAME), ary avy eo manamarina izany rehefa mamoaka taratasy fanamarinana. Linux dia manana utility - certbot, izay mamela anao hanao automatique ity dingana ity amin'ny ampahany (na tanteraka ho an'ny mpamatsy DNS sasany). Ho an'ny Windows avy amin'ny hita sy voamarina Safidin'ny mpanjifa ACME napetrako WinACME.

Ary efa noforonina ny rakitra ho an'ny sehatra, andao hiroso amin'ny famoronana certificat:

Mankany amin'ny automation ny famoahana SSL

Liana amin'ny fehin-kevitra farany izahay, izany hoe ny safidy azo atao hanamafisana ny fananana sehatra amin'ny famoahana taratasy fanamarinana wildcard:

  1. Mamorona rakitra DNS amin'ny tanana (tsy tohana ny fanavaozana mandeha ho azy)
  2. Mamorona rakitra DNS amin'ny alΓ lan'ny server acme-dns (afaka mamaky bebe kokoa momba ny eto.
  3. Mamorona rakitra DNS amin'ny alΓ lan'ny scripto manokana (mitovy amin'ny plugin cloudflare ho an'ny certbot).

Raha vao jerena dia mety tsara ny teboka fahatelo, fa ahoana raha tsy manohana an'io fiasa io ny mpamatsy DNS? Saingy mila tranga ankapobeny isika. Ary ny tranga ankapobeny dia ny firaketana CNAME, satria ny rehetra dia manohana azy ireo. Noho izany, mijanona eo amin'ny teboka 2 izahay ary mandeha manamboatra ny servery ACME-DNS.

Fametrahana ny mpizara ACME-DNS sy ny fizotran'ny famoahana taratasy fanamarinana

Ohatra, namorona ny sehatra 2nd.pp.ua aho, ary hampiasa izany amin'ny ho avy.

Fepetra tsy maintsy atao Mba hahafahan'ny mpizara miasa tsara dia ilaina ny mamorona rakitra NS sy A ho an'ny sehatra misy azy. Ary ny fotoana tsy mahafinaritra voalohany hitako dia ny cloudflare (farafaharatsiny amin'ny fomba fampiasana maimaim-poana) dia tsy mamela anao hamorona rakitra NS sy A ho an'ny mpampiantrano iray ihany. Tsy hoe olana izany, fa amin'ny fifamatorana dia azo atao. Namaly ny mpanohana fa tsy avelan'izy ireo manao izany. Tsy misy olana, andao hamorona rakitra roa:

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

Amin'ity dingana ity, ny mpampiantrano anay dia tokony hamaha acmens.2nd.pp.ua.

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

ary eto acme.2nd.pp.ua tsy hamaha izany, satria tsy mbola mandeha ny mpizara DNS izay manompo azy.

Efa noforonina ny rakitra, miroso amin'ny fametrahana sy fandefasana ny server ACME-DNS izahay. Hiaina ao amin'ny mpizara ubuntu-ko izy io docker kaontenera, fa azonao atao ny mampandeha azy na aiza na aiza misy ny golang. Tena mety ihany koa ny Windows, saingy mbola tiako ny mpizara Linux.

Mamorona lahatahiry sy rakitra ilaina:

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

Andao hampiasa vim miaraka amin'ny tonian-dahatsoratra tianao indrindra ary apetaho ao amin'ny config.cfg ny santionany fanahafana.

Ho an'ny asa mahomby dia ampy ny manitsy ny fizarana ankapobeny sy 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"
…

Ary koa, raha tiana dia hamorona rakitra docker-compose ao amin'ny lahatahiry serivisy lehibe izahay:

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

Vonona. Azonao atao izany.

$ docker-compose up -d

Amin'ity tranga ity dia tokony hanomboka ny mpanofa acme.2nd.pp.ua, ary misy 404 hita eo 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

Raha tsy miseho izany - docker logs -f <container_name> mba hanampiana, soa ihany fa azo vakina ny logs.

Afaka manomboka mamorona ny taratasy fanamarinana isika. Sokafy ny powershell amin'ny maha-mpitantana azy ary mandehana winacme. Liana amin'ny fifidianana izahay:

  • M: Mamorona taratasy fanamarinana vaovao (safidy feno)
  • 2: Fampidirana tanana
  • 2: [dns-01] Mamorona firaketana fanamarinana miaraka amin'ny acme-dns (https://github.com/joohoi/acme-dns)
  • Rehefa anontaniana momba ny rohy mankany amin'ny mpizara ACME-DNS dia ampidiro ny URL an'ny mpizara noforonina (https) ao amin'ny valiny. URL an'ny mpizara acme-dns: https://acme.2nd.pp.ua

Ao amin'ny fanokafana, ny mpanjifa dia mamoaka rakitsoratra izay mila ampiana amin'ny mpizara DNS efa misy (fomba indray mandeha):

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

Mankany amin'ny automation ny famoahana SSL

Mamorona ny rakitsoratra ilaina izahay ary manao izay hahazoana antoka fa tsara ny namoronana azy:

Mankany amin'ny automation ny famoahana SSL

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

Manamafy izahay fa namorona ny fidirana ilaina amin'ny winacme, ary manohy ny dingana amin'ny famoronana taratasy fanamarinana:

Mankany amin'ny automation ny famoahana SSL

Ny fomba fampiasana certbot ho mpanjifa dia nofaritana eto.

Izany dia mamita ny dingana amin'ny famoronana taratasy fanamarinana; azonao atao ny mametraka izany amin'ny mpizara tranonkala ary mampiasa azy. Raha toa ka mamorona certificat ianao dia mamorona asa ao amin'ny scheduler, dia ho avy ho azy ny dingana fanavaozana ny fanamarinana.

Source: www.habr.com

Add a comment