Üsna sageli peame töötama SSL-sertifikaatidega. Meenutagem sertifikaadi loomise ja installimise protsessi (üldjuhul enamiku puhul).
Leidke teenusepakkuja (sait, kust saame SSL-i osta).
Looge CSR.
Saatke see oma teenusepakkujale.
Kinnitage domeeni omandiõigus.
Hankige sertifikaat.
Teisendage sertifikaat nõutavale vormile (valikuline). Näiteks pemist PKCS nr 12-le.
Installige sertifikaat veebiserverisse.
Suhteliselt kiire, mitte keeruline ja arusaadav. See valik on üsna sobiv, kui meil on maksimaalselt kümme projekti. Mis siis, kui neid on rohkem ja neil on vähemalt kolm keskkonda? Klassikaline arendus - lavastus - tootmine. Sel juhul tasub mõelda selle protsessi automatiseerimisele. Teen ettepaneku probleemisse veidi süveneda ja leida lahendus, mis vähendab veelgi sertifikaatide loomisele ja hooldamisele kuluvat aega. Artikkel sisaldab probleemi analüüsi ja väikest juhendit kordamiseks.
Lubage mul eelnevalt broneerida: meie ettevõtte põhispetsialiseerumine on .net ja vastavalt IIS ja muud Windowsiga seotud tooted. Seetõttu kirjeldatakse ACME klienti ja kõiki sellega seotud toiminguid ka Windowsi kasutamise seisukohast.
Kelle jaoks see asjakohane on ja mõned lähteandmed
Ettevõte K, mida esindab autor. URL (näiteks): company.tld
Projekt X on üks meie projektidest, mille kallal töötades jõudsin järeldusele, et sertifikaatidega töötades tuleb siiski liikuda maksimaalse aja kokkuhoiu poole. Sellel projektil on neli keskkonda: arendus, test, lavastus ja tootmine. Arendus ja test on meie poolel, lavastus ja tootmine on kliendi poolel.
Projekti eripäraks on see, et sellel on suur hulk mooduleid, mis on saadaval alamdomeenidena.
Tootmiseks kasutatakse ostetud metamärgi sertifikaati, siin ei teki küsimusi. Kuid see hõlmab ainult alamdomeeni esimest taset. Seega, kui *.projectX.tld jaoks on olemas sertifikaat, siis see töötab staging.projectX.tld jaoks, kuid mitte mooduli 1.staging.projectX.tld jaoks. Aga millegipärast ei taha ma eraldi osta.
Ja seda ainult ühe ettevõtte ühe projekti näitel. Ja loomulikult on projekte rohkem kui üks.
Üldised põhjused, miks kõik selle probleemiga tegelevad, näevad välja umbes sellised:
Hõlbustada SSL-i väljastamise ja hooldamise protsessi projektide ja ettevõtte kui terviku sisemiste vajaduste jaoks.
Sertifikaadikirjete tsentraliseeritud salvestamine, mis lahendab osaliselt DNS-i abil domeeni kontrollimise ja sellele järgneva automaatse uuendamise probleemi ning lahendab ka kliendi usalduse küsimuse. Siiski on partneri/esineja ettevõtte serveris olev CNAME usaldusväärsem kui kolmanda osapoole ressurss.
Noh, lõpuks, antud juhul sobib fraas "parem omada kui mitte omada".
SSL-i pakkuja valimine ja ettevalmistavad sammud
Tasuta SSL-sertifikaatide saadaolevate valikute hulgas kaaluti cloudflare'i ja letsencrypti. Selle (ja mõne muu projekti) DNS-i hostib cloudflare, kuid ma ei ole nende sertifikaatide kasutamise fänn. Seetõttu otsustati kasutada letsencrypti.
Metamärgiga SSL-sertifikaadi loomiseks peate kinnitama domeeni omandiõiguse. See protseduur hõlmab mõne DNS-kirje (TXT või CNAME) loomist ja seejärel selle kontrollimist sertifikaadi väljastamisel. Linuxil on utiliit - certbot, mis võimaldab teil seda protsessi osaliselt (või mõne DNS-i pakkuja puhul täielikult) automatiseerida. Windowsi jaoks alates leitud ja kinnitatud ACME kliendi valikud, millega ma otsustasin WinACME.
Ja domeeni kirje on loodud, jätkame sertifikaadi loomisega:
Oleme huvitatud viimasest järeldusest, nimelt saadaolevatest valikutest domeeni omandiõiguse kinnitamiseks metamärgi sertifikaadi väljastamiseks:
DNS-kirjete loomine käsitsi (automaatset värskendamist ei toetata)
DNS-kirjete loomine acme-dns serveri abil (saate lugeda lisateavet siin.
DNS-kirjete loomine oma skripti abil (sarnaselt certboti cloudflare'i pistikprogrammiga).
Esmapilgul on kolmas punkt üsna sobiv, kuid mis siis, kui DNS-i pakkuja seda funktsiooni ei toeta? Kuid me vajame üldist juhtumit. Ja üldiselt on CNAME-kirjed, kuna kõik toetavad neid. Seetõttu peatume punktis 2 ja läheme konfigureerima oma ACME-DNS-serverit.
ACME-DNS serveri seadistamine ja sertifikaadi väljastamise protsess
Näiteks lõin domeeni 2nd.pp.ua ja kasutan seda ka edaspidi.
Kohustuslik nõue Serveri korrektseks tööks on vaja selle domeeni jaoks luua NS- ja A-kirjed. Ja esimene ebameeldiv hetk, millega ma kokku puutusin, on see, et cloudflare (vähemalt vabakasutuse režiimis) ei võimalda teil sama hosti jaoks samaaegselt NS- ja A-kirjet luua. Mitte, et see probleem oleks, kuid sidudes on see võimalik. Toetaja vastas, et nende paneel ei luba seda teha. Pole probleemi, loome kaks kirjet:
acmens.2nd.pp.ua. IN A 35.237.128.147
acme.2nd.pp.ua. IN NS acmens.2nd.pp.ua.
Selles etapis peaks meie võõrustaja lahendama acmens.2nd.pp.ua.
$ ping acmens.2nd.pp.ua
PING acmens.2nd.pp.ua (35.237.128.147) 56(84) bytes of data
ja siin acme.2nd.pp.ua see ei lahene, kuna seda teenindav DNS-server ei tööta veel.
Kirjed on loodud, jätkame ACME-DNS-serveri seadistamise ja käivitamisega. See hakkab elama minu ubuntu serveris sadamatööline konteiner, kuid saate seda kasutada kõikjal, kus golang on saadaval. Windows on ka täitsa sobiv, aga eelistan siiski Linuxi serverit.
Looge vajalikud kataloogid ja failid:
$ mkdir config
$ mkdir data
$ touch config/config.cfg
Kasutame vimi teie lemmiktekstiredaktoriga ja kleepige näidis faili config.cfg seadistamine.
Edukaks tööks piisab üldiste ja api jaotiste parandamisest:
Kui küsitakse ACME-DNS-serveri lingi kohta, sisestage vastusesse loodud serveri URL (https). acme-dns serveri URL: https://acme.2nd.pp.ua
Avamisel väljastab klient kirje, mis tuleb lisada olemasolevasse DNS-serverisse (ühekordne protseduur):
[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.
Loome vajaliku kirje ja veendume, et see loodi õigesti:
Kinnitame, et oleme winacme'is vajaliku kirje loonud, ja jätkame sertifikaadi loomise protsessi:
Kirjeldatakse, kuidas certbot kliendina kasutada siin.
See lõpetab sertifikaadi loomise protsessi; saate selle veebiserverisse installida ja seda kasutada. Kui sertifikaadi loomisel koostad ka plaanijasse ülesande, siis edaspidi toimub sertifikaadi uuendamise protsess automaatselt.