Acest ghid arată cum să instalați un certificat SSL ACME pe TrueNAS utilizând o gazdă externă și EAB (External Account Binding). Este compatibil atât cu TrueNAS CORE, cât și cu TrueNAS SCALE.

TrueNAS are suport ACME nativ, dar numai pentru Let’s Encrypt prin integrarea DNS-01 încorporată. Dacă doriți să utilizați un furnizor ACME comercial (Sectigo, DigiCert etc.) cu ACME + EAB, trebuie să generați și să reînnoiți certificatul extern utilizând un client ACME precum acme.sh, apoi să îl implementați în TrueNAS.
Înainte de a începe
Iată de ce veți avea nevoie:
- Un nume de domeniu direcționat către IP-ul public al TrueNAS (de exemplu, nas.example.com)
- TrueNAS CORE 13.x sau TrueNAS SCALE 23.x+
- O mașină Linux/BSD externă, un VPS sau un server local (pentru a rula acme.sh)
- ACME Directory URL, EAB Key ID și EAB HMAC de la CA-ul dvs. comercial
- Acces SSH la TrueNAS dacă intenționați să automatizați sincronizarea
Notă: TrueNAS NU acceptă furnizori ACME arbitrari în interfața sa de utilizator. Toate automatizările ACME comerciale trebuie să se desfășoare în afara TrueNAS.
Pasul 1: Instalați acme.sh pe gazda dvs. externă
Acest aparat va gestiona înregistrarea, emiterea și reînnoirea conturilor ACME.
Rulați:
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version
Dacă versiunea se imprimă corect, sunteți în regulă.
Pasul 2: Înregistrarea contului ACME la CA-ul dvs. comercial (ACME + EAB)
Tabloul dvs. de bord CA va furniza:
- ID cheie EAB
- Cheie EAB HMAC
- URL director ACME
Înregistrați-vă contul ACME:
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid YOUR_EAB_KID \
--eab-hmac-key YOUR_EAB_HMAC_KEY \
--accountemail [email protected]
Înlocuiți valorile cu propriile valori. Executați această operațiune o singură dată.
Pasul 3: Eliberarea certificatului (este necesară validarea DNS-01)
TrueNAS este aproape întotdeauna în spatele NAT, astfel încât validarea DNS este cea mai sigură.
Iată un exemplu de DNS manual:
acme.sh --issue \
-d nas.example.com \
--dns dns_manual \
--server https://acme.yourca.com/v2/acme
acme.sh vă va spune să creați o înregistrare TXT:
_acme-challenge.nas.example.com TXT <token>
Creați înregistrarea TXT în managerul DNS și așteptați propagarea.
Verificați propagarea:
dig TXT _acme-challenge.nas.example.com +short
După ce apare simbolul, executați din nou aceeași comandă și acme.sh va finaliza emiterea certificatului. Fișierele dvs. vor fi salvate la adresa ~/.acme.sh/nas.example.com/.
În interior veți găsi:
- fullchain.cer: cert server + intermediar
- nas.example.com.key: cheie privată
- ca.cer: Lanț CA (dacă este furnizat separat)
Pasul 4: Importați certificatul în TrueNAS
- Mergeți la: TrueNAS UI > Sistem > Certificate
- Faceți clic pe Adăugare și selectați Import certificat
- Încărcați fișierele certificatului și faceți clic pe Salvare
Atribuiți certificatul serviciilor dvs:
- Interfața web
- Servicii SMB / NFS (dacă este cazul)
- API Middleware
- Reverse proxies sau aplicații care utilizează HTTPS (TrueNAS SCALE)
Pasul 5: Automatizați reînnoirea și implementarea
TrueNAS nu extrage automat certificatele. Trebuie să introduceți certificate reînnoite în TrueNAS.
1. Creați un script de implementare
Pe gazda dvs. externă ACME, creați /usr/local/bin/truenas-deploy.sh:
Notă: Acest script funcționează numai dacă TrueNAS permite accesul SSH cu un utilizator autorizat să ruleze midclt. Acesta încarcă noua cheie + certificat la /tmp/ și înlocuiește certificatul activ prin API-ul TrueNAS. Asigurați-vă că căile și domeniul corespund configurației acme.sh.
#!/bin/bash
DOMAIN="nas.example.com"
NAS_USER="root"
NAS_HOST="truenas.local"
CERT_PATH="$HOME/.acme.sh/$DOMAIN"
KEY="$CERT_PATH/$DOMAIN.key"
CERT="$CERT_PATH/fullchain.cer"
scp "$KEY" "$NAS_USER@$NAS_HOST:/tmp/key.key"
scp "$CERT" "$NAS_USER@$NAS_HOST:/tmp/cert.cer"
ssh "$NAS_USER@$NAS_HOST" <<EOF
midclt call certificate.update '{"certificate": "custom", "csr": null, "privatekey": "$(cat /tmp/key.key)", "certificate": "$(cat /tmp/cert.cer)"}'
EOF
Faceți-l executabil:
chmod +x /usr/local/bin/truenas-deploy.sh
2. Adăugați un cârlig de reînnoire
Adăugați un cârlig de implementare în acme.sh:
acme.sh --deploy-hook truenas-deploy \
-d nas.example.com
Sau adăugați acest lucru în ~/.acme.sh/deploy/truenas-deploy.sh.
3. Lăsați acme.sh să se ocupe de tot
Iată ce face acme.sh automat:
- Verifică zilnic reînnoirile
- Reînnoiește certificatul
- Declanșează scriptul dvs. de implementare
- Împinge certificatele actualizate în TrueNAS
- Aplică modificările în mod silențios
Odată configurat, nu trebuie să atingeți TrueNAS din nou pentru reînnoirea certificatelor.
Întrebări frecvente
Dacă configurați pentru prima dată automatizarea ACME pe TrueNAS, aceste răspunsuri rapide acoperă problemele cu care utilizatorii se confruntă cel mai des.
Pot utiliza un singur certificat atât pentru TrueNAS GUI, cât și pentru alte servicii (SMB, NFS, portaluri iSCSI)?
Da. După ce importați certificatul în Sistem > Certificate, puteți selecta același certificat pentru interfața web și pentru orice serviciu care expune HTTPS (interfața web, API, poate proxy invers/HAProxy dacă îl utilizați). Nu aveți nevoie de certificate separate pentru fiecare serviciu, cu excepția cazului în care doriți nume de gazdă diferite.
NAS-ul meu este în spatele CGNAT sau NAT dublu. Mai pot folosi ACME?
Da, dar trebuie să utilizați validarea DNS-01. HTTP-01 nu va funcționa deoarece serverul ACME nu poate ajunge la NAS prin portul 80. Cu DNS-01, CA verifică doar înregistrarea TXT la _acme-challenge.yourdomain.com, deci nu îi pasă unde se află NAS-ul.
Ce se întâmplă dacă acme.sh reînnoiește certificatul, dar eu uit să îl reimportez în TrueNAS?
TrueNAS va continua să utilizeze certificatul vechi pe care l-ați importat ultima dată. Fișierele reînnoite rămân pe gazda externă până când le încărcați din nou (sau scriptul/API-ul dvs. se ocupă de acest lucru).
Site-ul dvs. va funcționa în continuare, dar în cele din urmă browserele vor începe să avertizeze cu privire la un certificat expirat. De aceea, merită fie să creați un script pentru reimport, fie să introduceți un memento în apropierea datei de expirare.
Pot utiliza un certificat wildcard (cum ar fi *.example.com) cu TrueNAS
Da. Atâta timp cât cheia privată și certificatul corespund, TrueNAS nu ține cont dacă este un certificat wildcard sau single-host. Trebuie totuși să emiteți wildcard-ul prin DNS-01 în acme.sh, apoi să importați fullchain.cer + *.example.com.key în TrueNAS. Aveți grijă unde reutilizați acea cheie. Un certificat wildcard oferă control deplin asupra tuturor subdomeniilor pe care le acoperă.
Cuvinte finale
Acest flux de lucru vă oferă o modalitate stabilă și fiabilă de a instala un certificat ACME pe TrueNAS fără a vă lupta cu sistemul. Gazda dvs. externă se ocupă de emiterea, reînnoirea și gestionarea certificatului, în timp ce TrueNAS primește pur și simplu importuri curate ori de câte ori fișierele sunt actualizate.
Odată ce procesul este implementat, totul rulează în liniște în fundal, iar dvs. interveniți doar dacă doriți să ajustați scripturile sau să rotiți acreditările.
Economisește 10% la certificatele SSL în momentul plasării comenzii!
Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

