Certbot ziņo par sekmīgu atjaunināšanu, diskā esošajiem failiem ir jauni datumi, un klienti joprojām sastop veco identitāti. SoftEther savu SSL servera sertifikātu glabā savā servera līmeņa konfigurācijā, tāpēc jauns fails diskā neko nemaina, kamēr lapa un tās atslēga nav importētas. Tālākā secība aptver vienu manuālu importu, ietvaru, kas darbojas pēc katras atjaunināšanas, un pārbaudi, kas nolasa, ko klausītājs patiešām uzrāda. Katrs solis atstāj pierādījumus, kurus varat salīdzināt pēc nākamās atjaunināšanas.

Atjaunināts fails nemaina servera identitāti

Izdošana un izvietošana ir atsevišķi notikumi ar atsevišķiem atteices režīmiem. ACME klients ieraksta failus cilts direktorijā un fiksē panākumus; SoftEther turpina izmantot sertifikātu, kas pēdējoreiz tika ielādēts tā konfigurācijā. Tāpēc nulles izejas statuss raksturo failus, nevis pakalpojumu, un abi var nesaskanēt, kamēr neviens neskatās. Uztveriet importu kā izvietošanas soli un atjaunināšanu kā tā ievadi.

Šī atšķirība izskaidro arī mulsinošo pusceļa kļūmi: vecais sertifikāts darbojas līdz tā derīguma beigām, tāpēc sākumā nekas neizskatās salūzis. Kad tas beidzas, visi klienti neizdodas vienlaikus, un tas izskatās pēc pārtraukuma, nevis pēc izlaista izvietošanas soļa. Uzrādītās identitātes pārbaude pēc katras atjaunināšanas pārvērš šo pārsteigumu par ikdienišķu novērojumu.

Izvēlieties klausītājam piemērotu izaicinājumu

Sertifikātam jānosauc resursdators, kuru pārbauda klienti, tāpēc izmantojiet publisko DNS nosaukumu, nevis iekšēju birku vai adresi. HTTP-01 prasa, lai izaicinājumam uz brīdi atbildētu 80. portā, kas ir pagaidu klausītājs un nekad nav iemesls pārvietot paša SoftEther portu. DNS-01 pierāda kontroli ar ierakstu un vispār neprasa ienākošu HTTP.

Bez uzraudzības veikta atjaunināšana nozīmē automatizētu DNS integrāciju ar vienai zonai ierobežotiem akreditācijas datiem, nevis ik pēc diviem mēnešiem ar roku rakstītu TXT ierakstu. Aizstājējzīme maina izaicinājuma veidu, nevis vajadzību pēc šīs automatizācijas. Izlemiet to pirms pirmā sertifikāta rašanās, jo izaicinājuma veida maiņa vēlāk nozīmē vienlaikus aizskart klienta konfigurāciju un ugunsmūri.

Sakārtojiet artefaktus, kamēr esat šeit. Lapa un starpposma sertifikāti nāk kā atsevišķi faili un kā viens apvienots ķēdes fails, privātā atslēga atkal ir atsevišķa, un importam nepieciešama ķēde ar tai atbilstošu atslēgu, nevis tikai publisks sertifikāts.

Importējiet ķēdi servera līmenī

Izveidojiet servera konfigurācijas dublējumu un pārliecinieties, ka joprojām sasniedzat pārvaldības saskarni, pirms pieskaraties sertifikātam. Savienojieties kā servera administrators, nevis Virtual Hub administrators, jo sertifikāts pieder servera objektam. Pēc tam ielādējiet ķēdi un atslēgu ar absolūtu ceļu, no failiem, kurus var nolasīt komandu izpildošais konts. Ņemiet vērā, ka ceļi ir absolūti, jo komanda tos atrisina no tā procesa darba direktorijas, kurš palaida vpncmd:

ServerCertSet /LOADCERT:/etc/letsencrypt/live/vpn.example.com/fullchain.pem /LOADKEY:/etc/letsencrypt/live/vpn.example.com/privkey.pem

Nolasiet komandas izvadi, nevis pieņemiet panākumus, un pēc tam nolasiet ķēdi atkārtoti, nevis uzticieties nodotajam failam. Robeža starp būvēm, kas importē visu PEM kopumu, un būvēm, kas ņem tikai pirmo sertifikātu, nav dokumentēta vienā vietā, tāpēc tieši pārbaude to izšķir jūsu priekšā esošajai būvei. Saskaitiet sertifikātus, ko uzrāda klausītājs; lapa bez starpposma sertifikātiem ir tā importētāja paraksts, kurš patērēja tikai pirmo bloku.

Turiet importēto atslēgu lasāmu tikai tam kontam, kas palaiž serveri, un turiet pārvaldības paroli ārpus čaulas vēstures. Šajā pirmajā importā ierakstiet paroli uzvednē, nevis nododiet to kā komandas argumentu. Šie divi ieradumi neko nemaksā un novērš visizplatītāko veidu, kā sertifikāta izvietošana noplūdina kaut ko tādu, ko tai vajadzēja aizsargāt. Dariet to pirms pirmā importa, nevis pēc tā.

Pievienojiet izvietošanu, nevis atjaunināšanu

Kad manuālais imports darbojas, ievietojiet tieši šos soļus mazā ietvarā un izsauciet to no ACME klienta pēc sekmīgas atjaunināšanas. Certbot iestata RENEWED_LINEAGE un RENEWED_DOMAINS āķim, tāpēc ietvars var darboties ar vienu sertifikātu mašīnā, kas pārvalda vairākus. Filtrējiet pēc cilts, nevis reaģējiet uz katru atjaunināšanu resursdatorā. Ietvars ir izvietošanas kods, kas darbojas ar servera privilēģijām, tāpēc pārskatiet to kā jebkuru citu skriptu šajā pozīcijā.

certbot renew --deploy-hook /usr/local/sbin/softether-deploy.sh

Āķim, kas darbojas bez uzraudzības, nepieciešama sava aizsargāta akreditācijas datu krātuve un cilvēku sasniedzošs atteices signāls. Ja izdošana izdodas un imports neizdodas, atkārtojiet importu, nevis pieprasiet citu sertifikātu, jo otrs pieprasījums paslēpj izvietošanas defektu aiz jauna faila. Certbot atjaunināšanas dokumentācija skaidri norāda, ka palaišana, kas neko neatjaunina, ir normāls rezultāts, tāpēc tieši āķis abus atšķir.

Salīdziniet uzrādīto ķēdi ar failu

Nolasiet klausītāju, nevis disku. Savienojieties ar klientiem vērsto portu ar servera nosaukumu, ko izmanto klienti, pēc tam salīdziniet pirksta nospiedumu un piegādāto ķēdi ar cilts līniju, ko instalēja āķis. To aptver divas komandas, un pirmā arī parāda, vai starpposma sertifikāti vispār ierodas:

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 -sha256

Pēc tam izveidojiet jaunu klienta savienojumu, jo sesijas, kas izveidotas pirms importa, tika autentificētas pret iepriekšējo identitāti un neko nepierāda par jauno. Ja klienti piesprauž veco lapu, viņiem nepieciešama saskaņota atjaunināšana pat tad, kad publiskā ķēde ir derīga, un šis uzdevums pieder tai pašai runbook kā atjaunināšana. Apgriezts starpniekservers pakalpojuma priekšā var uzrādīt labu sertifikātu, kamēr VPN klausītājs vēl tur veco, un tāpēc pārbaudei jānosauc ports, kuru klienti patiešām sasniedz. Pierakstiet pirksta nospiedumu blakus atjaunināšanas datumam, lai nākamā salīdzināšana būtu pārbaude, nevis atmiņas akts.

Saistītie raksti