Certbot meldt in slagge fernijing, de triemmen op skiif drage nije datums, en kliïnten treffe noch altyd de âlde identiteit. SoftEther hâldt syn SSL-tsjinnercertifikaat yn syn eigen konfiguraasje op tsjinnernivo, dat in nije triem op skiif feroaret neat oant it blêd en syn kaai ympôrt binne. De folchoarder hjirûnder behannelet ien hânmjittige ympórt, in wrapper dy't nei elke fernijing rint, en in kontrôle dy't lêst wat de listener eins presintearret. Elke stap lit bewiis efter dat jo nei de folgjende fernijing fergelykje kinne.

In fernijde triem feroaret de identiteit fan de tsjinner net

Utjefte en útrôl binne aparte barren mei aparte flatermodi. De ACME-klient skriuwt triemmen yn in linemap en registrearret sukses; SoftEther bliuwt it certifikaat brûken dat it lêst yn syn konfiguraasje laden waard. In útgongstatus fan nul beskriuwt dus de triemmen, net de tsjinst, en dy twa kinne ferskille salang nimmen sjocht. Behannelje de ympórt as de útrôlstap en de fernijing as syn ynput.

Dat ûnderskie ferklearret ek de betiizjende heale mislearring: it âlde certifikaat bliuwt wurkjen oant syn ferrin, dat earst liket neat stikken. As it ferrint, mislearje alle kliïnten tagelyk, wat liket op in útfal en net op in miste útrôlstap. It presintearre identiteit kontrolearje nei elke fernijing makket dat ferrassing in routine-observaasje.

Kies de útdaging dy't by de listener past

It certifikaat moat de host neame dy't kliïnten ferifiearje, dus brûk de publike DNS-namme yn stee fan in ynterne label of in adres. HTTP-01 freget dat de útdaging in momint op poarte 80 beantwurde wurdt, wat in tydlike listener is en nea in reden om SoftEther syn eigen poarte te ferpleatsen. DNS-01 bewiist kontrôle fia in record en hat hielendal gjin ynkommende HTTP nedich.

Fernijing sûnder tafersjoch betsjut in automatisearre DNS-yntergraasje mei oanmeldgegevens beheind ta ien sône, net in TXT-record dy't elke twa moanne mei de hân typt wurdt. In wildcard feroaret it type útdaging, net de needsaak foar dy automatisearring. Beskiede dit foar't it earste certifikaat bestiet, want it type útdaging letter feroarje betsjut de klantkonfiguraasje en de firewall tagelyk oanreitsje.

Hâld de artefakten byinoar salang jo hjir binne. It blêd en de tuskenlizzende certifikaten komme as aparte triemmen en as ien kombinearre ketentriem, de priveekaai is wer apart, en de ympórt hat de keten mei syn byhearrende kaai nedich, net in publiek certifikaat allinnich.

Ympórtje de keten op tsjinnernivo

Meitsje in reservekopy fan de tsjinnerkonfiguraasje en befêstigje dat jo de behearinterface noch berikke kinne foar't jo it certifikaat oanreitsje. Ferbyn as tsjinnerbehearder en net as Virtual Hub-behearder, want it certifikaat heart by it tsjinnerobjekt. Laad dan de keten en de kaai op absolút paad, út triemmen dy't it akkount dat it kommando rint lêze kin. Tink derom dat de paden absolút binne om't it kommando se út de wurkmap fan it proses oplost dat vpncmd rûn:

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

Lês de útgong fan it kommando yn stee fan sukses oan te nimmen, en lês dan de keten werom yn stee fan de oerdroegen triem te fertrouwen. De grins tusken builds dy't in hiel PEM-bondel ympórtje en builds dy't allinnich it earste certifikaat nimme is net op ien plak dokumintearre, dat de kontrôle beslist it foar de build foar jo. Tel de certifikaten dy't de listener presintearret; in blêd sûnder tuskenlizzende is de hantekening fan in ympórtder dy't allinnich it earste blok ferbrûkte.

Hâld de ympórtte kaai lêsber allinnich foar it akkount dat de tsjinner rint, en hâld it behearwachtwurd bûten de shell-skiednis. Typ foar dizze earste ympórt it wachtwurd by de fraach yn stee fan it as kommando-argumint te jaan. Dy twa gewoanten kostje neat en helje de meast foarkommende manier wei wêrop in certifikaatútrôl eat lekket dat it beskermje moast. Doch dat foar de earste ympórt, net dêrnei.

Heakje it útrôl oan, net de fernijing

As de hânmjittige ympórt wurket, set dan krekt dy stappen yn in lytse wrapper en rop him oan út de ACME-klient nei in slagge fernijing. Certbot set RENEWED_LINEAGE en RENEWED_DOMAINS foar de hook, dat de wrapper kin hannelje op ien certifikaat op in masine dy't ferskate beheart. Filterje op de line yn stee fan op elke fernijing op de host te reagearjen. De wrapper is útrôlkoad dy't mei de foarrjochten fan de tsjinner rint, dus beoardielje him as elk oar skript op dy posysje.

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

In hook dy't sûnder tafersjoch rint hat syn eigen beskerme oanmeldopslach en in flatersinjaal nedich dat in minske berikt. As de útjefte slagget en de ympórt mislearret, besykje de ympórt opnij yn stee fan in oar certifikaat oan te freegjen, want in twadde oanfraach ferberget it útrôldefekt efter in nije triem. De Certbot-dokumintaasje oer fernijing is dúdlik dat in run dy't neat bywurket in normale útkomst is, dus de hook is wat de twa ûnderskiedt.

Fergelykje de presintearre keten mei de triem

Lês de listener, net de skiif. Ferbyn mei de tsjinnernamme dy't kliïnten brûke op de poarte foar kliïnten, en fergelykje dan de fingerprint en de levere keten mei de line dy't de hook ynstallearre. Twa kommando's dekke it, en it earste lit ek sjen oft tuskenlizzende certifikaten uberhaupt oankomme:

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

Meitsje dan in nije klantferbining, want sesjes dy't foar de ympórt oprjochte binne, binne tsjin de foarige identiteit autentisearre en bewiize neat oer de nije. As kliïnten it âlde blêd pinne, hawwe se in koördinearre fernijing nedich sels as de publike keten jildich is, en dy taak heart yn itselde runbook as de fernijing. In omkearde proxy foar de tsjinst kin in goed certifikaat presintearje wylst de VPN-listener noch it âlde hâldt, en dêrom moat de kontrôle de poarte neame dy't kliïnten echt berikke. Skriuw de fingerprint njonken de fernijingsdatum, sadat de folgjende fergeliking in kontrôle is en net in die fan ûnthâld.

Relatearre artikelen