SoftEther ServerCertSet: atnaujintos grandinės importavimas su vpncmd
Atnaujintas failas nekeičia SoftEther serverio tapatybės. Importuokite grandinę su ServerCertSet, prijunkite diegimo žingsnį ir perskaitykite klausytuvą.
Certbot praneša apie sėkmingą atnaujinimą, diske esantys failai turi naujas datas, o klientai vis dar sutinka seną tapatybę. SoftEther savo SSL serverio sertifikatą laiko savoje serverio lygio konfigūracijoje, todėl naujas failas diske nieko nekeičia, kol lapas ir jo raktas nebus importuoti. Žemiau pateikta seka apima vieną rankinį importavimą, apvalkalą, kuris paleidžiamas po kiekvieno atnaujinimo, ir patikrą, kuri perskaito, ką klausytuvas iš tikrųjų pateikia. Kiekvienas žingsnis palieka įrodymus, kuriuos galite palyginti po kito atnaujinimo.
Atnaujintas failas nekeičia serverio tapatybės
Išdavimas ir diegimas yra atskiri įvykiai su atskirais gedimo režimais. ACME klientas įrašo failus į linijos katalogą ir užfiksuoja sėkmę; SoftEther toliau naudoja sertifikatą, kuris paskutinis buvo įkeltas į jo konfigūraciją. Todėl nulinis išėjimo statusas apibūdina failus, o ne paslaugą, ir abu gali nesutarti tol, kol niekas nežiūri. Laikykite importavimą diegimo žingsniu, o atnaujinimą – jo įvestimi.
Šis skirtumas paaiškina ir klaidinančią pusinę nesėkmę: senas sertifikatas veikia iki jo galiojimo pabaigos, todėl iš pradžių niekas neatrodo sulūžę. Kai jis baigiasi, visi klientai nepavyksta vienu metu, o tai atrodo kaip sutrikimas, o ne praleistas diegimo žingsnis. Pateiktos tapatybės tikrinimas po kiekvieno atnaujinimo paverčia tą netikėtumą įprastu stebėjimu.
Pasirinkite klausytuvui tinkantį iššūkį
Sertifikatas turi įvardyti tą hostą, kurį tikrina klientai, todėl naudokite viešą DNS vardą, o ne vidinę žymą ar adresą. HTTP-01 reikalauja, kad iššūkis akimirką būtų atsakytas 80 prievade, o tai yra laikinas klausytuvas ir niekada nėra priežastis perkelti paties SoftEther prievadą. DNS-01 įrodo kontrolę per įrašą ir visiškai nereikalauja gaunamojo HTTP.
Be priežiūros atliekamas atnaujinimas reiškia automatizuotą DNS integraciją su vienai zonai apribotais prisijungimo duomenimis, o ne kas du mėnesius ranka rašomą TXT įrašą. Pakaitos simbolis keičia iššūkio tipą, o ne tos automatizacijos poreikį. Nuspręskite tai prieš atsirandant pirmajam sertifikatui, nes iššūkio tipo keitimas vėliau reiškia kartu liesti kliento konfigūraciją ir užkardą.
Tvarkykite artefaktus, kol esate čia. Lapas ir tarpiniai sertifikatai ateina kaip atskiri failai ir kaip vienas sujungtas grandinės failas, privatus raktas vėl yra atskiras, o importavimui reikia grandinės su jai atitinkančiu raktu, o ne vien viešo sertifikato.
Importuokite grandinę serverio lygiu
Padarykite serverio konfigūracijos atsarginę kopiją ir prieš liesdami sertifikatą patvirtinkite, kad vis dar pasiekiate valdymo sąsają. Prisijunkite kaip serverio administratorius, o ne Virtual Hub administratorius, nes sertifikatas priklauso serverio objektui. Tada įkelkite grandinę ir raktą absoliučiu keliu, iš failų, kuriuos gali skaityti komandą vykdantis accountas. Atkreipkite dėmesį, kad keliai yra absoliutūs, nes komanda juos išsprendžia iš to proceso, kuris paleido vpncmd, darbinio katalogo:
ServerCertSet /LOADCERT:/etc/letsencrypt/live/vpn.example.com/fullchain.pem /LOADKEY:/etc/letsencrypt/live/vpn.example.com/privkey.pemSkaitykite komandos išvestį, o ne tikėkitės sėkmės, o tada perskaitykite grandinę iš naujo, o ne pasitikėkite perduotu failu. Riba tarp versijų, kurios importuoja visą PEM rinkinį, ir versijų, kurios paima tik pirmą sertifikatą, nėra dokumentuota vienoje vietoje, todėl būtent patikra tai nusprendžia jūsų akivaizdoje esančiai versijai. Suskaičiuokite sertifikatus, kuriuos pateikia klausytuvas; lapas be tarpinių yra importuotojo, sunaudojusio tik pirmą bloką, parašas.
Importuotą raktą laikykite skaitomą tik tam accountui, kuris paleidžia serverį, o valdymo slaptažodį laikykite už shell istorijos ribų. Šio pirmo importavimo metu slaptažodį įveskite raginime, o ne perduokite kaip komandos argumentą. Šie du įpročiai nieko nekainuoja ir pašalina dažniausią būdą, kuriuo sertifikatų diegimas atskleidžia tai, ką turėjo apsaugoti. Padarykite tai prieš pirmą importavimą, o ne po jo.
Prijunkite diegimą, o ne atnaujinimą
Kai rankinis importavimas veiks, įdėkite būtent tuos žingsnius į mažą apvalkalą ir po sėkmingo atnaujinimo iškvieskite jį iš ACME kliento. Certbot nustato RENEWED_LINEAGE ir RENEWED_DOMAINS kabliui, todėl apvalkalas gali veikti vieną sertifikatą mašinoje, kuri valdo kelis. Filtruokite pagal liniją, o ne reaguokite į kiekvieną hosto atnaujinimą. Apvalkalas yra diegimo kodas, veikiantis su serverio privilegijomis, todėl peržiūrėkite jį kaip bet kurį kitą tos pozicijos scenarijų.
certbot renew --deploy-hook /usr/local/sbin/softether-deploy.shBe priežiūros veikiantis kabliukas turi turėti savo apsaugotą prisijungimo duomenų saugyklą ir žmogų pasiekiantį gedimo signalą. Jei išdavimas pavyksta, o importavimas nepavyksta, pakartokite importavimą, o ne prašykite kito sertifikato, nes antra užklausa paslepia diegimo defektą už naujo failo. Certbot atnaujinimo dokumentacija aiškiai nurodo, kad paleidimas, kuris nieko neatnaujina, yra normalus rezultatas, todėl būtent kabliukas atskiria abu.
Palyginkite pateiktą grandinę su failu
Skaitykite klausytuvą, o ne diską. Prisijunkite prie klientams skirto prievado su serverio vardu, kurį naudoja klientai, tada palyginkite pirštų atspaudą ir pristatytą grandinę su linija, kurią įdiegė kabliukas. Tam pakanka dviejų komandų, o pirmoji taip pat parodo, ar tarpiniai apskritai ateina:
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | grep -c 'BEGIN CERTIFICATE'
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -dates -fingerprint -sha256Tada sukurkite naują kliento ryšį, nes sesijos, užmegztos prieš importavimą, buvo autentifikuotos pagal ankstesnę tapatybę ir nieko neįrodo apie naująją. Jei klientai prisega seną lapą, jiems reikia suderinto atnaujinimo net tada, kai vieša grandinė galioja, ir ta užduotis priklauso tam pačiam runbookui kaip ir atnaujinimas. Atvirkštinis tarpinis serveris priešais paslaugą gali pateikti gerą sertifikatą, kol VPN klausytuvas vis dar laiko seną, todėl patikra turi įvardyti prievadą, kurį klientai iš tikrųjų pasiekia. Užsirašykite pirštų atspaudą prie atnaujinimo datos, kad kitas palyginimas būtų patikra, o ne atminties veiksmas.