Finder aktive TLS-server-blokke og skifter certifikat og nøgle med lokal kontrol af aktiveringen.
Sådan forløber det
- Service-agenten på serveren henter opgaven fra appliancen over udgående HTTPS, port 443.
- Certifikat og nøgle valideres og klargøres ved de valgte CERT_PATH og KEY_PATH. De tidligere filer gemmes, og en lokal journal registrerer forløbet. Hvis det fejler: Ugyldig PEM eller en nøgle, der ikke passer til certifikatet, giver et JSON-resultat uden at skifte de aktive filer.
- Ved RELOAD=true tester Nginx konfigurationen og indlæser de klargjorte filer som kontrol før skiftet.
- Filerne skiftes, og Nginx genindlæses som standard. RELOAD_MAY_RESTART=true tillader én nginx-genstart, hvis to genindlæsninger stadig viser det tidligere certifikat. Andre tjenester genstartes ikke.
- Kontrol: pakken sammenligner det certifikat, Nginx viser lokalt, med det nye certifikats SHA-256-fingeraftryk. Et afbrudt forløb afstemmes med journalen og den aktuelle tjeneste før nyt arbejde. Hvis det fejler: Hvis skiftet bryder en tidligere fungerende lokal TLS-tjeneste, forsøges gendannelse med separat resultat. Et fungerende nyt certifikat rulles ikke tilbage ved genoptagelse. Rollback bruger journalen og bevarer senere filændringer.
Tekniske detaljer
- Forbindelse
- Pakken kører gennem service-agenten på serveren. Agenten forbinder over udgående HTTPS til appliancen, port 443 som standard. I åbner ingen port ind til serveren.
- Tjenestens porte
- 443, 80
- I skal bruge
- Service-agenten installeret på serveren. Service-agenten skal kunne læse nginx-konfigurationen og skrive i certifikatets og nøglens mapper samt den valgte konfigurationsmappe ved takeover. check-access kontrollerer adgang og nginx -t. Valgfri sudo-adgang til nginx -T læser den aktive konfiguration privat; den omfatter kun faste nginx-kontroller og tjenestehandlinger, ikke filskrivning eller egne kommandoer.
- Handlinger
- Discovery, Installation, Kontrol, Rollback
- Pakker
-
nginx-ssh1.4.0 - Bemærk
-
- Discovery spørger den kørende Nginx, hvor konfigurationen ligger: master-processens -c, ellers systemd-enheden, ellers nginx -V. Include-filer følges, som Nginx selv gør. Deploy og rollback accepterer også certifikat og nøgle uden for standardmapperne, når en server-blok i den aktive konfiguration bruger netop det par.
- CERT_PATH og KEY_PATH skal angives fra discovery eller konfiguration, også ved ad hoc-installation. Pakken gætter ikke filnavne ud fra domænet. Discovery viser aktive server-blokke og kendte certifikathåndteringer; en fallback til aktiverede konfigurationsfiler er markeret i resultatet.
- CERT_PEM og KEY_PEM accepterer rå PEM fra appliance 0.4.44 eller base64. De valgfrie CERT_PEM_BASE64 og KEY_PEM_BASE64 har hver især forrang. Grænsen er 48.000 afkodede bytes pr. værdi. En ugyldig angivet base64-værdi erstattes ikke med en anden værdi.
- RELOAD=false ændrer filerne og en eventuel valgt certifikatbinding på disk uden at genindlæse tjenesten. Aktivering er ikke bekræftet; de oprindelige filer og journalen beholdes til senere kontrol eller gendannelse. RELOAD_MAY_RESTART er false som standard. Pakken bruger systemctl, OpenRC eller tjenestens eksisterende nginx-kontrol.
- En regel ændrer kun den valgte serverblok. Native ACME fjernes kun, hvis ingen anden binding i serverblokken bruger det. Almindelig ekstern fornyelse og acme.sh med gemte installationsstier og almindelig nginx-genindlæsning bruger dedikerede certifikatfiler, så kildens senere fornyelse ikke overskriver den valgte binding. Andre servere, certifikater og fælles renewal-timere ændres ikke; pakken kører ikke hooks. Ved første overtagelse koordinerer agenten konkret fundne acme.sh-writers til den berørte konfigurationsfil: nye starts venter, igangværende challenges afsluttes, og klienten genoptages efter skiftet. Det kan kortvarigt forsinke andre lineages i samme installation. LOCAL_TLS_SNI skelner mellem servere med samme kildecertifikat. Resultatet angiver faktiske cert_path/key_path til senere kontrol.
- Koordination bruger Linux fanotify til at holde nye klientstarts tilbage uden at ændre klientfilen. Den konkrete installation kræver eksisterende CAP_SYS_ADMIN og kernel-understøttelse; fast nginx-sudo giver ikke denne capability. Manglende capability giver en konkret fejl før skiftet, ikke et generelt root-krav. Almindelig fornyelse efter overtagelsen bevares. Skjulte privilegerede launchers og egne asynkrone hooks er ikke universelt udelukket. Ved afbrydelse frigiver kernel-barrieren de ventende starts; næste agentkørsel koordinerer igen før recovery. Klientens indstillinger og opgraderinger bevares.
- Gendannelse af det tidligere serverede certifikat kræver et læsbart, matchende certifikat og nøgle. Native ACME-cache bruges kun, når leaf og nøgle matcher den lokale observation. Første native-overtagelse afvises før konfigurationsændring eller genindlæsning med native_restore_material_unavailable, hvis det fungerende gamle certifikat mangler et valideret, genopretteligt nøglepar, herunder ved state_path off eller ubrugelig cache. Bevar eller eksportér det gamle par før et nyt forsøg. Et valideret indgående par, som matcher det observerede gamle certifikat, kan også bruges. Almindelig fornyelse efter overtagelse bevares. Ældre, allerede skiftede journaler kan stadig angive restore_material_unavailable; journalen kan ikke genskabe en privat nøgle.
- LOCAL_TLS_HOST er 127.0.0.1 eller ::1. LOCAL_TLS_PORT og LOCAL_TLS_SNI kan angives til den valgte listener. Kontrollen måler det lokale certifikats identitet; den beviser ikke ekstern adgang, hele tillidskæden eller andre noder.