<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>RaffaeleChiatto.com</title>
	<atom:link href="https://www.raffaelechiatto.com/feed/" rel="self" type="application/rss+xml"/>
	<link>https://www.raffaelechiatto.com</link>
	<description>Il Blog di Informatica a 360°</description>
	<lastBuildDate>Thu, 14 May 2026 06:31:32 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.raffaelechiatto.com/wp-content/uploads/2025/05/favicon-150x150.png</url>
	<title>RaffaeleChiatto.com</title>
	<link>https://www.raffaelechiatto.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<itunes:explicit>no</itunes:explicit><itunes:subtitle>Il Blog di Informatica a 360°</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Gadgets"/></itunes:category><item>
		<title>Come configurare un certificato wCome configurare un certificato wildcard Let’’s Encrypt in Nginx Proxy Manager con Cloudflare tramite DNS Challenge</title>
		<link>https://www.raffaelechiatto.com/come-configurare-un-certificato-wildcard-lets-encrypt-in-nginx-proxy-manager-con-cloudflare-tramite-dns-challenge/</link>
					<comments>https://www.raffaelechiatto.com/come-configurare-un-certificato-wildcard-lets-encrypt-in-nginx-proxy-manager-con-cloudflare-tramite-dns-challenge/#respond</comments>
		
		<dc:creator><![CDATA[Raffaele Chiatto]]></dc:creator>
		<pubDate>Thu, 14 May 2026 06:31:32 +0000</pubDate>
				<category><![CDATA[Certification Authority]]></category>
		<category><![CDATA[Cloudflare]]></category>
		<category><![CDATA[Nginx Proxy Manager]]></category>
		<category><![CDATA[DNSChallange]]></category>
		<category><![CDATA[LetsEncrypt]]></category>
		<category><![CDATA[NginxProxyManager]]></category>
		<category><![CDATA[NPM]]></category>
		<category><![CDATA[Wildcard]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123285</guid>

					<description><![CDATA[&#160; Quando si gestiscono più sottodomini avere un certificato SSL wildcard è una delle soluzioni più comode per semplificare la configurazione e mantenere tutto protetto con un solo certificato. In questo scenario l’accoppiata tra Nginx Proxy Manager, Let’s Encrypt e Cloudflare rappresenta una soluzione pratica, moderna ed efficace, soprattutto se si vuole automatizzare il rilascio [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091058 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<p>&nbsp;</p>
<p>Quando si gestiscono più sottodomini avere un certificato SSL wildcard è una delle soluzioni più comode per semplificare la configurazione e mantenere tutto protetto con un solo certificato.</p>
<p>In questo scenario l’accoppiata tra Nginx Proxy Manager, Let’s Encrypt e Cloudflare rappresenta una soluzione pratica, moderna ed efficace, soprattutto se si vuole automatizzare il rilascio e il rinnovo dei certificati senza impazzire con configurazioni manuali.</p>
<p>In questo articolo vedremo come configurare un certificato wildcard Let’s Encrypt in Nginx Proxy Manager utilizzando Cloudflare tramite DNS Challenge, una procedura particolarmente utile quando i servizi non sono esposti direttamente in pubblico oppure quando si desidera una gestione più pulita e flessibile dei sottodomini.</p>
<p>Ti guiderò passo dopo passo nella configurazione spiegando non solo cosa fare, ma anche perché farlo, così da ottenere un setup affidabile, sicuro e facilmente replicabile.</p>
<p>&nbsp;</p>
<h3><strong>PREREQUISITI</strong></h3>
<ul>
<li>Dominio gestito su Cloudflare</li>
<li>Nginx Proxy Manager funzionante</li>
<li>Accesso admin a Cloudflare</li>
<li>Possibilità di creare un API Token Cloudflare con permessi DNS minimi</li>
</ul>
<p>Per i token Cloudflare, la combinazione raccomandata è:</p>
<p>Zone &#8211; DNS &#8211; Edit</p>
<p>Zone &#8211; Zone &#8211; Read</p>
<p>Cloudflare documenta la creazione dei token, e questa coppia di permessi è anche quella normalmente richiesta dai client ACME che usano Cloudflare.</p>
<p>&nbsp;</p>
<h3><strong>CONFIGURARE IL DOMINIO SU CLOUDFLARE</strong></h3>
<p>Accedere a Cloudlfare</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-01.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123290 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-01-1024x492.png" alt="" width="1024" height="492" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-01-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-01-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Cliccare su <strong>Add</strong> quindi selezionare <strong>Connect a Domain</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-02a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123321 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-02a-1024x491.png" alt="" width="1024" height="491" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-02a-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-02a-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Inserire il nome del dominio quindi selezionare l&#8217;opzione <strong>Import DNS records automatically. We will scan for common DNS records and import them for you.</strong></p>
<p>Quindi cliccare <strong>Continue</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-03.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123292 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-03-1024x494.png" alt="" width="1024" height="494" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-03-980x473.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-03-480x231.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare il piano. Nel mio caso selezionerò quello <strong>Free</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-04a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123324 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-04a-1024x495.png" alt="" width="1024" height="495" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-04a-980x473.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-04a-480x232.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>In questa fase verificare che siano stai creati tutti i record DNS presenti sul provider di origine.</p>
<p>Quindi cliccare <strong>Continue to Activation</strong> al fondo della pagina</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-05.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123294 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-05-1024x496.png" alt="" width="1024" height="496" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-05-980x474.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-05-480x232.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>A questo punto sostituire sul provider i <strong>Nameservers</strong> inserendo quelli di Cloudflare e quindi:</p>
<p><strong>annabel.ns.cloudflare.com</strong></p>
<p><strong>nash.ns.cloudflare.com</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-06.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123295 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-06-1024x493.png" alt="" width="1024" height="493" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-06-980x471.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-06-480x231.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Trovare e disattivare l’impostazione di sicurezza <strong>DNS (DNSSEC)</strong>, se è attiva. Potremo riattivarla in seguito tramite Cloudflare.</p>
<p>Consentire al tuo server di origine solo gli indirizzi IP di Cloudflare</p>
<p>Quindi cliccare<strong> I updated my nameservers</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-07.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123297 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-07-1024x496.png" alt="" width="1024" height="496" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-07-980x475.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-07-480x233.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>In questa schermata siamo in attesa che il registrar propaghi i nuovi nameserver</p>
<p>E&#8217; in corso la verifica che il tuo dominio punti a Cloudflare.</p>
<p>In genere sono necessarie 1-2 ore, ma potrebbero volerci fino a 24 ore, a seconda del tuo registrar. Lo stato viene controllato periodicamente.</p>
<p>Cliccare <strong>check nameservers now</strong> per verificare lo stato</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-08.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123298 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-08-1024x494.png" alt="" width="1024" height="494" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-08-980x473.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-08-480x232.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Al termine della propagazione dovremmo visualizzare una schermata come quella sovrastante che ci dice che il dominio ora è protetto da Cloudflare.</p>
<p>A questo punto sarà possibile gestire i record DNS da Cloudflare</p>
<p>&nbsp;</p>
<h3><strong>CREAZIONE DEL TOKEN API SU CLOUDLFLARE</strong></h3>
<p>Dalla Dashboard di Cloudlfare</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-09.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123299 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-09-1024x493.png" alt="" width="1024" height="493" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-09-980x472.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-09-480x231.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Cliccare su <strong>My Profile → API Tokens → Create Token</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-10.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123300 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-10-1024x491.png" alt="" width="1024" height="491" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-10-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-10-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Utilizzare il template tipo <strong>Edit zone DNS</strong> e poi restringilo al tuo dominio.</p>
<p>Cliccare <strong>Use Template</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-11.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123302 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-11-1024x495.png" alt="" width="1024" height="495" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-11-980x473.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-11-480x232.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Sopra un immagine che mostra le impostazioni consigliate da impostare sul template</p>
<p>Impostazioni consigliate del token:</p>
<p><strong>Permissions</strong></p>
<p>Zone / DNS / Edit</p>
<p>Zone / Zone / Read</p>
<p><strong>Zone Resources</strong></p>
<p>Include / Specific zone / tuodominio.it</p>
<p>Quindi cliccare su <strong>Continue to Summary</strong></p>
<p><strong>ATTENZIONE</strong>: Questo è meglio della vecchia Global API Key che Cloudflare sconsiglia in favore degli API token.</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-12.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123303 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-12-1024x492.png" alt="" width="1024" height="492" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-12-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-12-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Cliccare su <strong>Create Token</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-13.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123304 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-13-1024x491.png" alt="" width="1024" height="491" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-13-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-13-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Quando Cloudflare ti mostra il token copiarlo subito, conservalo in modo sicuro e non condividerlo con nessuno</p>
<p>&nbsp;</p>
<h3><strong>CONFIGURAZIONE DI NGINX PROXY MANAGER</strong></h3>
<p>Aprire Nginx Proxy Manager</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-14.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123306 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-14-1024x506.png" alt="" width="1024" height="506" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-14-980x484.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-14-480x237.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Cliccare su <strong>Certificates</strong> nel menù in alto quindi <strong>Add Certificate</strong> e selezionare <strong>Let’s Encrypt via DNS</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-15a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123328 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-15a-1024x510.png" alt="" width="1024" height="510" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-15a-980x488.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-15a-480x239.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>A questo punto inserire i nomi di dominio corretti.</p>
<p>Nel campo domini inserire: <strong>*.tuodominio e tuodominio.it</strong></p>
<p>In questo modo il certificato:</p>
<p><strong>*.tuodominio.it</strong> copre app.tuodominio.it, home.tuodominio.it, vpn.tuodominio.it</p>
<p><strong>tuodominio.it</strong> copre il dominio principale</p>
<p><strong>ATTENZIONE</strong>: Ricorda che *.tuodominio.it non copre tuodominio.it</p>
<p>Questa è una caratteristica normale dei wildcard certificate. Il DNS-01 serve proprio a validare questo tipo di richiesta.</p>
<p>Impostare come <strong>Key Type</strong>: RSA 2048</p>
<p>Come <strong>DNS Provider</strong> impostare: Clouflare</p>
<p>Nella sezione <strong>Credential File Content</strong>: dns_cloudflare_api_token=IL_TUO_TOKEN</p>
<p>Nella sezione <strong>Propagation Seconds</strong>: impostare i secondi da attendere per la propagazione. Lasciarlo vuoto per usare la propagazione di default.</p>
<p>Cliccare <strong>Save</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-16.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123308 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-16-1024x514.png" alt="" width="1024" height="514" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-16-980x492.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-16-480x241.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Se è andato tutto a buon fine dovremmo visualizzare una schermata come quella sovrastante con il provider di emissione del certificato e la data di scadenza.</p>
<p>A questo punto NPM prova a:</p>
<ul>
<li>chiedere il certificato a Let’s Encrypt</li>
<li>creare via API su Cloudflare il record TXT _acme-challenge</li>
<li>attendere la propagazione DNS</li>
<li>completare la validazione DNS-01</li>
<li>salvare il certificato e configurarne il rinnovo automatico</li>
</ul>
<p><strong>NOTA BENE:</strong> Let’s Encrypt conferma che il DNS-01 funziona creando TXT record di validazione e che è il metodo richiesto per i wildcard.</p>
<p><strong>ATTENZIONE</strong>: Per capire se il record viene creato davvero:</p>
<p><strong>da fuori</strong>: controlla _acme-challenge con Resolve-DnsName o nslookup<br />
<strong>da dentro</strong>: controlla i log del container NPM<br />
non fidarti solo della UI di Cloudflare, perché il TXT può essere temporaneo e sparire subito</p>
<p>&nbsp;</p>
<h3><strong>ASSEGNAZIONE DEL CERTIFICATO AI PROXY HOST</strong></h3>
<p>Quando il certificato compare in SSL Certificates andare sul Proxy Host e:</p>
<ul>
<li>aprire il proxy host</li>
<li>posizionarsi nella scheda SSL</li>
<li>seleziona il certificato wildcard appena creato</li>
<li>abilitare Force SSL, HTTP/2 Support e HSTS Enabled solo se sai di volerlo davvero</li>
</ul>
<p>Salvare la configurazione.</p>
<p>Da quel momento i sottodomini coperti dal certificato useranno quel wildcard.</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-17a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123330 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-17a-1024x510.png" alt="" width="1024" height="510" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-17a-980x488.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/cert-npm-cloudlfare-17a-480x239.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Se è tutto OK dovremmo visualizzare una schermata come quella sovrastante.</p>
<p>&nbsp;</p>
<h3><strong>CONTROLLO DEL FUNZIONAMENTO DEL CERTIFICATO</strong></h3>
<p>Di seguito una serie di controlli rapidi per verificare che tutto funzioni.</p>
<p>In NPM → SSL Certificates il certificato deve risultare valido</p>
<p>Aprendo <strong>https://app.tuodominio.it</strong> il browser deve mostrare certificato valido</p>
<p>Nel certificato devono comparire i SAN:</p>
<p>*.tuodominio.it e tuodominio.it</p>
<p>&nbsp;</p>
<h3><strong>ERRORI PIU&#8217; COMUNI E COME RISOLVERLI</strong></h3>
<p><strong>1) Permessi token insufficienti</strong></p>
<p>Sintomo:</p>
<ul>
<li>errore tipo 403</li>
<li>impossibilità di leggere la zone o creare il TXT</li>
</ul>
<p>Controllare il token Cloudflare:</p>
<ul>
<li>Zone:DNS:Edit</li>
<li>Zone:Zone:Read</li>
<li>limitato alla zone corretta</li>
</ul>
<p>&nbsp;</p>
<p><strong>2) Hai impostato solo *.tuodominio.it</strong></p>
<p>Risultato:</p>
<ul>
<li>i sottodomini funzionano</li>
<li>https://tuodominio.it non funziona</li>
</ul>
<p>Per coprire anche il dominio base devi aggiungere anche tuodominio.it. Il wildcard da solo non basta.</p>
<p>&nbsp;</p>
<p><strong>3) Il dominio non usa davvero Cloudflare DNS</strong></p>
<p>Sintomo:</p>
<ul>
<li>Cloudflare accetta il token</li>
<li>ma il challenge non si completa</li>
</ul>
<p>Se i nameserver del dominio non puntano davvero a Cloudflare, NPM può non riuscire a pubblicare il TXT dove Let’s Encrypt lo cerca.</p>
<p>&nbsp;</p>
<p><strong>4) Propagazione DNS o pre-check fallito</strong></p>
<p>Sintomo:</p>
<ul>
<li>errori su TXT non trovato</li>
</ul>
<p>Il DNS-01 dipende dalla visibilità pubblica del record TXT. Let’s Encrypt verifica via DNS pubblico, non tramite richieste HTTP al server.</p>
<p>Spesso basta:</p>
<ul>
<li>rifare la richiesta</li>
<li>attendere un po’</li>
<li>controllare che non ci siano problemi di permessi/token</li>
</ul>
<p>&nbsp;</p>
<p><strong>5) Hai usato la Global API Key invece del Token</strong></p>
<p>Può funzionare in alcuni flussi legacy ma Cloudflare raccomanda gli API token al posto della Global API Key.</p>
<p>Buone pratiche:</p>
<ul>
<li>usare un token limitato a una sola zone</li>
<li>non usare la Global API Key</li>
<li>includere sia *.tuodominio.it sia tuodominio.it</li>
<li>non cancellare il certificato dopo averlo associato ai proxy host</li>
<li>controllare ogni tanto che il rinnovo automatico continui a funzionare</li>
</ul>
<p>C’è anche un aspetto di sicurezza: Let’s Encrypt segnala che nel DNS-01 le credenziali API restano sul server quindi vanno trattate con attenzione.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/come-configurare-un-certificato-wildcard-lets-encrypt-in-nginx-proxy-manager-con-cloudflare-tramite-dns-challenge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione e Configurazione Base di Unifi OS Server su Ubuntu Server 24.04</title>
		<link>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-unifi-os-server-su-ubuntu-server-24-04/</link>
					<comments>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-unifi-os-server-su-ubuntu-server-24-04/#respond</comments>
		
		<dc:creator><![CDATA[Raffaele Chiatto]]></dc:creator>
		<pubDate>Mon, 11 May 2026 06:31:02 +0000</pubDate>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unifi]]></category>
		<category><![CDATA[Ubiquity]]></category>
		<category><![CDATA[Unifi OS Server]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123185</guid>

					<description><![CDATA[&#160; UniFi OS Server rappresenta una soluzione sempre più interessante per chi desidera centralizzare la gestione della propria infrastruttura di rete in modo semplice, moderno e scalabile. Installarlo su Ubuntu 24.04 permette di sfruttare una piattaforma stabile, aggiornata e adatta sia ad ambienti domestici evoluti sia a contesti professionali di piccole e medie dimensioni. In [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091056 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/INTERMEDIATE-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/INTERMEDIATE-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/INTERMEDIATE-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<p>&nbsp;</p>
<p>UniFi OS Server rappresenta una soluzione sempre più interessante per chi desidera centralizzare la gestione della propria infrastruttura di rete in modo semplice, moderno e scalabile.</p>
<p>Installarlo su Ubuntu 24.04 permette di sfruttare una piattaforma stabile, aggiornata e adatta sia ad ambienti domestici evoluti sia a contesti professionali di piccole e medie dimensioni.</p>
<p>In questo articolo vedremo come eseguire l’installazione e la configurazione base di UniFi OS Server su Ubuntu 24.04, partendo dai prerequisiti fino ai primi passaggi fondamentali per rendere il sistema operativo e pronto alla gestione dei dispositivi UniFi.</p>
<p>L’obiettivo è fornire una guida pratica e lineare, utile per chi vuole avvicinarsi a questa piattaforma senza perdersi in configurazioni complesse fin dall’inizio.</p>
<p>Al termine della procedura avrai un’istanza funzionante di UniFi OS Server, configurata correttamente e pronta per essere personalizzata in base alle esigenze della tua rete.</p>
<p><strong>ATTENZIONE</strong>: oggi UniFi OS Server è il metodo nuovo e consigliato da Ubiquiti per il self-hosting, e sostituisce il vecchio UniFi Network Server. Su Linux, Ubiquiti richiede Ubuntu 23.04+ e usa Podman + slirp4netns per l’installazione. L’ultima release che risulta disponibile è UniFi OS Server 5.0.6 for Linux (x64).</p>
<p>&nbsp;</p>
<h3><strong>PREREQUISITI</strong></h3>
<p>Ubiquiti indica la seguente configurazione per Linux:</p>
<ul>
<li>Ubuntu 23.04 o superiore</li>
<li>CPU x86-64</li>
<li>almeno 2 GB RAM</li>
<li>almeno 10 GB liberi</li>
<li>podman 4.3.1+ e slirp4netns 1.2+</li>
</ul>
<p>&nbsp;</p>
<h3><strong>AGGIORNAMENTO DEL SISTEMA</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt update
sudo apt full-upgrade -y
sudo reboot</pre><p>Dopo il riavvio rientrare via terminale/SSH.</p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI PODMAN E SLIRP4NETNS</strong></h3>
<p>Questo è il passaggio ufficiale richiesto da Ubiquiti per Linux.</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt-get update
sudo apt-get install -y podman slirp4netns</pre><p>Controllare le versioni installate con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">podman --version</pre><p>Dovremmo visualizzare un output simile al seguente:</p><pre class="urvanov-syntax-highlighter-plain-tag">podman version 4.9.3</pre><p>Quindi eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">slirp4netns --version</pre><p>Dovremmo visualizzare un output simile al seguente:</p><pre class="urvanov-syntax-highlighter-plain-tag">slirp4netns version 1.2.1
commit: 09e31e92fa3d2a1d3ca261adaeb012c8d75a8194
libslirp: 4.7.0
SLIRP_CONFIG_VERSION_MAX: 4
libseccomp: 2.5.5</pre><p>&nbsp;</p>
<p>&nbsp;</p>
<h3><strong>DOWNLOAD DELL&#8217;INSTALLAER DI UNIFI OS SERVER</strong></h3>
<p>Ubiquiti indica di prendere il link diretto del file Linux x64 dalla pagina download o dalle release, poi scaricarlo con curl o wget, renderlo eseguibile ed eseguirlo.</p>
<p>Apri la pagina download di UniFi OS Server e copia il link dell&#8217;ultima release Linux (x64) disponbile.</p>
<p><a href="https://ui.com/download/software/unifi-os-server" target="_blank" rel="noopener">https://ui.com/download/software/unifi-os-server</a></p>
<p><strong>NOTA BENE</strong>: al momento della stesura del seguente articolo l&#8217;ultima versione disponibile è la UniFi OS Server 5.0.6 for Linux (x64)</p>
<p>Sul server Ubuntu eseguire i comandi di seguito risporati sostituendo l’URL con quello copiato:</p><pre class="urvanov-syntax-highlighter-plain-tag">cd /tmp
wget "https://fw-download.ubnt.com/data/unifi-os-server/1856-linux-x64-5.0.6-33f4990f-6c68-4e72-9d9c-477496c22450.6-x64"</pre><p>Controllare il nome del file scaricato con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">ls -lh</pre><p>Dovremmo trovare il seguente file:</p><pre class="urvanov-syntax-highlighter-plain-tag">1856-linux-x64-5.0.6-33f4990f-6c68-4e72-9d9c-477496c22450.6-x64</pre><p>&nbsp;</p>
<p>&nbsp;</p>
<h3><strong>RENDERE IL FILE ESEGUIBILE E AVVIARE L&#8217;INSTALLAZIONE</strong></h3>
<p>Eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">chmod +x 1856-linux-x64-5.0.6-33f4990f-6c68-4e72-9d9c-477496c22450.6-x64</pre><p>Quindi avviare l’installazione con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo ./1856-linux-x64-5.0.6-33f4990f-6c68-4e72-9d9c-477496c22450.6-x64</pre><p>Alla domanda:</p><pre class="urvanov-syntax-highlighter-plain-tag">You are about to install UOS Server version 5.0.6. Proceed? (y/N):</pre><p>Premere <strong>Y</strong></p>
<p>Se è andato tutto a buon fine dovremmo visualizzare il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">INFO Installing UOS Server 5.0.6...
INFO Checking compatible podman runtime available...
INFO Checking disk space for required directories...
INFO - /home/: Requires 15.00 GB, available 28.17 GB
INFO - /var/lib/uosserver/: Requires 1.00 GB, available 28.17 GB
INFO - /usr/local/bin/: Requires 0.12 GB, available 28.17 GB
INFO - /tmp/: Requires 2.00 GB, available 28.17 GB
INFO - /var/tmp/: Requires 2.00 GB, available 28.17 GB
INFO All disk space requirements met.
INFO Checking ports...
INFO Adding uosserver user and group...
INFO Adding user 'root' to 'uosserver' group...
INFO Creating /var/lib/uosserver dir...
INFO Creating /var/lib/uosserver/logs dir...
INFO Creating /var/lib/uosserver/bin dir...
INFO Creating /home/uosserver/tmp dir...
INFO Setting up /usr/local/bin/uosserver binary...
INFO Setting up /usr/local/bin/uosserver-purge binary...
INFO Setting up /var/lib/uosserver/bin/discovery binary...
INFO Setting up /var/lib/uosserver/bin/pasta binary...
INFO Setting up /var/lib/uosserver/bin/uosserver-service service binary...
INFO Setting up /var/lib/uosserver/bin/updater-service binary...
INFO Initializing podman conf...
INFO Allowing raw socket execution...
INFO Creating file /var/lib/uosserver/server.conf...
INFO Config set UOS_UUID=8ad0470d-bf8d-595f-85a4-6adaac647f51
INFO Config set CONTAINER_VERSION=0.0.54
INFO Config set UOS_SERVER_VERSION=5.0.6
INFO Config set NETWORK_MODE=pasta
INFO Creating systemd services...
INFO Loading container image...
INFO [podman] Getting image source signatures
INFO [podman] Copying blob sha256:b7fe3d1983242adf9765bc16155a1dc9d621b7e54d32060f806fc121a65fd637
INFO [podman] Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
INFO [podman] Copying blob sha256:632a1a8daa7590599cc733470c6fa2cf39735430febf72016f33ed37a943e237
INFO [podman] Copying blob sha256:cf4be161aa1de3cf14fa15d9611898552c9cc01c18563acb37324d19077afbd6
INFO [podman] Copying blob sha256:9dedd62b9228b7f8a7c95677425772d778033ce15f979d2b08ec9e95d71eac10
INFO [podman] Copying blob sha256:0fb3170f3e0f99ca912f8d5768fedfac1b8ce6c99ce530eb38885cf3dd36961e
INFO [podman] Copying blob sha256:f7604bf526f0462afa853691be9d2e087358a1331bfa1a8e7f442c9350ac1fb9
INFO [podman] Copying blob sha256:41c4718d584d57ba2f4060f80b2afc40ddd79869da751ca66435acbf2fd32035
INFO [podman] Copying config sha256:0faf0b7f0e4ebcbbae964ab0876fab00e47c166d67e649daa4143f7c53e62977
INFO [podman] Writing manifest to image destination
INFO [podman] Loaded image: docker.io/library/uosserver:0.0.54
INFO Config set CONTAINER_IMAGE_NAME=docker.io/library/uosserver:0.0.54
INFO Starting container...
INFO 6972ac2043407a0ab6d699d312ad3a4f219e4f0078fa4610d7e866b39f72ab74
INFO run --detach --pids-limit 65536 --systemd=always --cap-add=NET_RAW --cap-add=NET_ADMIN --name uosserver --restart unless-stopped --health-cmd curl --fail http://127.0.0.1/api/ping || exit 1 --health-interval 60s --health-timeout 5s --health-retries 3 --network pasta:--ns-ifname,eth0,--map-host-loopback,203.0.113.113,--dns-forward,203.0.113.113 --add-host host.docker.internal:203.0.113.113 --add-host host.containers.internal:203.0.113.113 --dns 203.0.113.113 -e UOS_UUID=8ad0470d-bf8d-595f-85a4-6adaac647f51 -e UOS_SERVER_VERSION=5.0.6 -e FIRMWARE_PLATFORM=linux-x64 -v uosserver_persistent:/persistent -v uosserver_var_log:/var/log -v uosserver_data:/data -v uosserver_srv:/srv -v uosserver_var_lib_unifi:/var/lib/unifi -v uosserver_var_lib_mongodb:/var/lib/mongodb -v uosserver_etc_rabbitmq_ssl:/etc/rabbitmq/ssl -p 11443:443 -p 5005:5005 -p 9543:9543 -p 6789:6789 -p 8080:8080 -p 8443:8443 -p 8444:8444 -p 3478:3478/udp -p 5514:5514/udp -p 10003:10003/udp -p 11084:11084 -p 5671:5671 -p 8880:8880 -p 8881:8881 -p 8882:8882 docker.io/library/uosserver:0.0.54
INFO Config set CONTAINER_ARG_HASH=6972ac2043407a0ab6d699d312ad3a4f219e4f0078fa4610d7e866b39f72ab747689b15fbc14594ed82584a1393c33c78b2ab638c1cf7c0648f8cfb901c18913
INFO Waiting for container 'uosserver' to start (timeout: 60s)
INFO Container 'uosserver' is running. (elapsed: 0.0s)
INFO Waiting for systemd to be ready (timeout: 60s)
INFO Systemd is ready. (elapsed: 7.8s)
INFO Starting uosserver systemd service...
INFO Waiting for UOS Server to start...
WARN Timeout: Unifi-core did not start within 60 seconds.
WARN
!!! INSTALLATION COMPLETE !!!
To grant permission for a user to run 'uosserver' commands:
-&gt; Add the user to the 'uosserver' group:
usermod -aG uosserver &lt;username&gt;
-&gt; Then log out and log back in for the changes to take effect.
To get started with available commands, run:
uosserver help

WARNING: UOS Server startup timed out after 60 seconds. On low-powered devices, the web interface can take a few minutes to be accessible. Try opening it at: 192.168.1.120:11443</pre><p>&nbsp;</p>
<p>&nbsp;</p>
<h3><strong>CONTROLLARE CHE IL SERVIZIO SIA ATTIVO</strong></h3>
<p>Ubiquiti indica che il servizio systemd si chiama uosserver.</p>
<p>Verificare lo stato con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">systemctl status uosserver --no-pager</pre><p>Se è tutto OK dovremmo un output simile al seguente:</p><pre class="urvanov-syntax-highlighter-plain-tag">● uosserver.service - Unifi OS Service
Loaded: loaded (/etc/systemd/system/uosserver.service; enabled; preset: enabled)
Active: active (running) since Sun 2026-03-22 13:23:30 UTC; 2min 39s ago
Main PID: 3096 (uosserver-servi)
Tasks: 8 (limit: 2262)
Memory: 8.0M (peak: 19.7M swap: 3.2M swap peak: 3.2M)
CPU: 3.866s
CGroup: /system.slice/uosserver.service
├─3096 /var/lib/uosserver/bin/uosserver-service
└─3111 /var/lib/uosserver/bin/discovery</pre><p>Per abilitarlo all’avvio eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl enable uosserver</pre><p>Per riavviare il servizio eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl restart uosserver</pre><p>Per fermarlo/avviarlo manualmente eseguire i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl stop uosserver
sudo systemctl start uosserver</pre><p>&nbsp;</p>
<h3><strong>ACCESSO DA INTERFACCIA WEB</strong></h3>
<p>Per il login locale ai self-hosted Network Server, Ubiquiti indica la porta 11443.</p>
<p>Apri da un qualsiasi browser il seguente link:</p>
<p><strong>https://IP_DEL_SERVER:11443</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/inst-unifiosserver-ubuntu-01.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123186 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/inst-unifiosserver-ubuntu-01-1024x691.png" alt="" width="1024" height="691" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/inst-unifiosserver-ubuntu-01-1024x691.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/inst-unifiosserver-ubuntu-01-980x661.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/inst-unifiosserver-ubuntu-01-480x324.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Accettare l’eventuale avviso del certificato e completare il wizard.</p>
<p>&nbsp;</p>
<h3><strong>RIMOZIONE DI UNIFI OS SERVER</strong></h3>
<p>Di seguito una sequenza completa per rimuovere i residui di UniFi OS Server, compresi servizio, processi, container, binari, utente e gruppo uosserver.</p>
<p>Eseguire tutti i comandi come root oppure con sudo.</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl stop uosserver 2&gt;/dev/null || true
sudo systemctl disable uosserver 2&gt;/dev/null || true
sudo pkill -f uosserver || true
sudo pkill -u uosserver 2&gt;/dev/null || true

podman rm -f $(podman ps -aq) 2&gt;/dev/null || true
podman image prune -a -f 2&gt;/dev/null || true

sudo rm -f /usr/local/bin/uosserver
sudo rm -f /etc/systemd/system/uosserver.service
sudo systemctl daemon-reload

sudo rm -rf /var/log/uosserver
sudo rm -rf /var/lib/uosserver
sudo rm -rf /opt/uosserver
sudo rm -rf /usr/local/share/uosserver
sudo rm -rf /home/uosserver

sudo userdel -r uosserver 2&gt;/dev/null || sudo userdel uosserver 2&gt;/dev/null || true
sudo groupdel uosserver 2&gt;/dev/null || true

sudo cp /etc/passwd /etc/passwd.bak
sudo cp /etc/shadow /etc/shadow.bak
sudo cp /etc/group /etc/group.bak
sudo cp /etc/gshadow /etc/gshadow.bak

sudo sed -i '/^uosserver:/d' /etc/passwd
sudo sed -i '/^uosserver:/d' /etc/shadow
sudo sed -i '/^uosserver:/d' /etc/group
sudo sed -i '/^uosserver:/d' /etc/gshadow

getent passwd uosserver
getent group uosserver
id uosserver
grep '^uosserver:' /etc/passwd /etc/shadow /etc/group /etc/gshadow</pre><p>Al termine dell&#8217;esecuzione dei comandi se è andato tutto a buon fine dovremmo visualizzare il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">nessun output per getent</pre><p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-unifi-os-server-su-ubuntu-server-24-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Come configurare un certificato wCome configurare un certificato wildcard Let’’s Encrypt in Nginx Proxy Manager con Cloudflare tramite DNS Challenge</title>
		<link>https://www.raffaelechiatto.com/installazione-di-awx-su-k3s-con-lutilizzo-di-rancher/</link>
					<comments>https://www.raffaelechiatto.com/installazione-di-awx-su-k3s-con-lutilizzo-di-rancher/#respond</comments>
		
		<dc:creator><![CDATA[Raffaele Chiatto]]></dc:creator>
		<pubDate>Wed, 06 May 2026 06:37:29 +0000</pubDate>
				<category><![CDATA[Ansible AWX]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Rancher]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[awx]]></category>
		<category><![CDATA[Helm]]></category>
		<category><![CDATA[k3s]]></category>
		<category><![CDATA[rancher]]></category>
		<category><![CDATA[Traefik]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123129</guid>

					<description><![CDATA[&#160; Negli ultimi anni l’automazione dell’infrastruttura è diventata un elemento fondamentale per semplificare la gestione degli ambienti IT, migliorare la coerenza delle configurazioni e ridurre i tempi operativi. In questo contesto AWX la versione open source di Ansible Tower rappresenta una soluzione particolarmente interessante per centralizzare playbook, job template, credenziali e workflow di automazione attraverso [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091057 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<p>&nbsp;</p>
<p>Negli ultimi anni l’automazione dell’infrastruttura è diventata un elemento fondamentale per semplificare la gestione degli ambienti IT, migliorare la coerenza delle configurazioni e ridurre i tempi operativi.</p>
<p>In questo contesto AWX la versione open source di Ansible Tower rappresenta una soluzione particolarmente interessante per centralizzare playbook, job template, credenziali e workflow di automazione attraverso un’interfaccia web intuitiva.</p>
<p>Allo stesso tempo l’adozione di distribuzioni Kubernetes leggere come K3S ha reso possibile eseguire workload containerizzati anche in ambienti più snelli, di laboratorio o edge, senza rinunciare ai vantaggi dell’orchestrazione.</p>
<p>Se a questo aggiungiamo Rancher, otteniamo un livello ulteriore di semplificazione nella gestione del cluster grazie a una console centralizzata e a strumenti pratici per il deployment e il monitoraggio delle applicazioni.</p>
<p>In questo articolo vedremo come eseguire l’installazione di AWX su K3S utilizzando Rancher analizzando i prerequisiti, i componenti necessari e i passaggi principali per arrivare a una piattaforma di automazione funzionante, moderna e facilmente amministrabile.</p>
<p>L’obiettivo è costruire un ambiente solido e replicabile utile sia per test che per scenari più strutturati.</p>
<p>&nbsp;</p>
<h3><strong>PREREQUISITI</strong></h3>
<p>Un server Ubuntu 24.04 con queste caratterstiche:</p>
<ul>
<li>almeno 4 vCPU / 8 GB RAM come minimo pratico;</li>
<li>meglio 8 vCPU / 16 GB RAM se vuoi usare Rancher + AWX senza sofferenze</li>
</ul>
<p>un FQDN</p>
<p>porte aperte: 22, 80, 443</p>
<p>un utente con privilegi di sudo</p>
<p>Per Rancher su K3s conviene scegliere una versione Kubernetes supportata.</p>
<p>La matrice Rancher corrente indica supporto per K3s da v1.32 a v1.34, quindi in questa guida fisserò una release K3s v1.32.x per stare in zona sicura.</p>
<p>&nbsp;</p>
<h3><strong>AGGIORNAMENTO DI UBUNTU E INSTALLAZIONE DEGLI STRUMENTI BASE</strong></h3>
<p>Aggiornare Ubuntu con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt update &amp;&amp; sudo apt -y upgrade
sudo apt -y install curl wget git vim jq apt-transport-https ca-certificates gnupg lsb-release</pre><p>Controllare l’IP del server con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">hostname -I</pre><p>Supponiamo che l’IP sia 192.168.1.50.</p>
<p>Per il laboratorio puoi usare questi hostnames:</p>
<p><strong>rancher.test.lab &#8211; 192.168.1.50</strong></p>
<p><strong>awx.test.lab &#8211; 192.168.1.50</strong></p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI K3S</strong></h3>
<p>Rancher documenta l’installazione di K3s con cluster-init anche su singolo nodo, così mantieni una via semplice verso una futura migrazione HA.</p>
<p>K3s installa anche i link a kubectl di default se non già presenti nel PATH.</p>
<p>Installare K3s fissando una release supportata con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.32.6+k3s1" sh -s - server --cluster-init</pre><p>Verificare che tutto sia ok con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl status k3s --no-pager
sudo kubectl get nodes -o wide
sudo kubectl get pods -A</pre><p>Configurare il <strong>kubeconfig</strong> per il tuo utente con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER:$USER ~/.kube/config
export KUBECONFIG=~/.kube/config
echo 'export KUBECONFIG=~/.kube/config' &gt;&gt; ~/.bashrc</pre><p>Verificare i nodi con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get nodes</pre><p>Dovremmo visualizzare un output simile al seguente:</p><pre class="urvanov-syntax-highlighter-plain-tag">NAME STATUS ROLES AGE VERSION
vm-srv-ubu-awx Ready control-plane,etcd,master 76s v1.32.6+k3s1</pre><p>&nbsp;</p>
<h3><strong>CONTROLLO DI TRAEFIK E DELLO STORAGE CLASS</strong></h3>
<p>K3s include di default l’ingress controller. Per Rancher non serve installarne uno extra su K3s.</p>
<p>Verificare che Traefik sia presente con i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get pods -n kube-system | grep traefik
kubectl get svc -n kube-system</pre><p>Verificare lo storage class di default con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get storageclass</pre><p>Su K3s normalmente trovi local-path come default sufficiente per una AWX con database interno in ambiente lab.</p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI HELM</strong></h3>
<p>Rancher richiede Helm 3.</p>
<p>Eseguire i comandi per installare Helm:</p><pre class="urvanov-syntax-highlighter-plain-tag">curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod +x get_helm.sh
sudo ./get_helm.sh
helm version</pre><p>Dovremmo visualizzare il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">version.BuildInfo{Version:"v3.20.0", GitCommit:"b2e4314fa0f229a1de7b4c981273f61d69ee5a59", GitTreeState:"clean", GoVersion:"go1.25.6"}</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI CERT-MANAGER</strong></h3>
<p>La documentazione cert-manager raccomanda l’installazione via chart Helm/OCI e con crds.enabled=true.</p>
<p>La release indicata nella documentazione corrente è v1.19.4.</p>
<p>Eseguire i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">helm install cert-manager oci://quay.io/jetstack/charts/cert-manager \
--version v1.19.4 \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true</pre><p>Aspettare che sia pronto quindi eseguire i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl rollout status deployment -n cert-manager cert-manager
kubectl rollout status deployment -n cert-manager cert-manager-webhook
kubectl rollout status deployment -n cert-manager cert-manager-cainjector
kubectl get pods -n cert-manager</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI RANCHER</strong></h3>
<p>Rancher si installa via Helm nel namespace cattle-system esposto tramite Ingress HTTPS.</p>
<p>Il chart supporta opzioni come bootstrapPassword, hostname e ingress.tls.source.</p>
<p>Aggiungere il repository e creare il namespace con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
kubectl create namespace cattle-system</pre><p>Opzione più semplice per lab: certificato generato da Rancher</p>
<p>Usa ingress.tls.source=rancher che è il default del chart Rancher. Il chart supporta anche bootstrapPassword.</p>
<p>Eseguire i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">helm upgrade --install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.192.168.1.50.sslip.io \
--set bootstrapPassword='AdminTemp!2026' \
--set replicas=1</pre><p>Dovremmo visualizzare il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">Rancher Server has been installed. Rancher may take several minutes to fully initialize.

Please standby while Certificates are being issued, Containers are started and the Ingress rule comes up.

Check out our docs at https://rancher.com/docs/

## First Time Login

If you provided your own bootstrap password during installation, browse to https://rancher.mypsx.net to get started.
If this is the first time you installed Rancher, get started by running this command and clicking the URL it generates:

```
echo https://rancher.mypsx.net/dashboard/?setup=$(kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}')
```

To get just the bootstrap password on its own, run:

```
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ "\n" }}'
```

Happy Containering!</pre><p>A questo punto eseguire il rollout con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl rollout status deployment -n cattle-system rancher
kubectl get pods -n cattle-system
kubectl get ingress -n cattle-system</pre><p>Controllare l’URL di bootstrap con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">echo "https://rancher.192.168.1.50.test.lab/dashboard/?setup=$(kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}')"</pre><p>&nbsp;</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-01.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123137 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-01-1024x492.png" alt="" width="1024" height="492" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-01-980x471.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-01-480x231.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Aprire l&#8217;URL nel browser. Al primo accesso accettare il certificato self-signed quindi inserire la password</p>
<p>Cliccare su <strong>Login with Local User</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-02.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123138 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-02-1024x487.png" alt="" width="1024" height="487" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-02-980x466.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-02-480x228.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Inserire l’URL del server corretto</p>
<p>Rancher richiede HTTPS e la sua documentazione mostra hostname come parametro fondamentale del chart.</p>
<p>Cliccare <strong>Continue</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-03.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123141 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-03-1024x492.png" alt="" width="1024" height="492" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-03-980x471.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-03-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Se tutto è andato bene dovremmo visualizzare la Dashboard del Rancher</p>
<p>Quando si accede in Rancher la prima cosa che si vede è il cluster locale.</p>
<p>Questo cluster può ospitare anche AWX.</p>
<p>Per un lab va bene usare il local cluster.</p>
<p>In produzione di solito si separa il cluster di management da quello dei workload.</p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI AWX OPERATOR</strong></h3>
<p>L’AWX Operator si installa nel cluster e gestisce il ciclo di vita di AWX nello stesso namespace.</p>
<p>L’installazione ufficiale base usa Kustomize con una kustomization.yaml che punta al tag dell’operator.</p>
<p>Creare il namespace con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl create namespace awx</pre><p>Creare una cartella di lavoro con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">mkdir -p ~/awx-operator-install
cd ~/awx-operator-install</pre><p>Creare <strong>kustomization.yaml</strong> con il comando:</p>
<p><strong>NOTA BENE</strong>: Consiglio di usare un tag esplicito invece del branch devel. La doc ufficiale mostra proprio questo schema con <strong>github.com/ansible/awx-operator/config/default?ref=&lt;tag&gt;</strong>.</p><pre class="urvanov-syntax-highlighter-plain-tag">cat &gt; kustomization.yaml &lt;&lt;'EOF'
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- github.com/ansible/awx-operator/config/default?ref=2.7.2

images:
- name: quay.io/ansible/awx-operator
newTag: 2.7.2

namespace: awx
EOF</pre><p>Applicare con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl apply -k .</pre><p>Verificare con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get pods -n awx
kubectl get deployments -n awx
kubectl get crd | grep awx</pre><p>Dovremmo vedere il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get pods -n awx
kubectl get deployments -n awx
kubectl get crd | grep awx
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-59669d4d4-6wcck 0/2 ErrImagePull 0 20s
NAME READY UP-TO-DATE AVAILABLE AGE
awx-operator-controller-manager 0/1 1 0 20s
awxbackups.awx.ansible.com 2026-03-08T16:54:22Z
awxrestores.awx.ansible.com 2026-03-08T16:54:22Z
awxs.awx.ansible.com 2026-03-08T16:54:22Z
root@vm-srv-ubu-awx:~/awx-operator-install# kubectl get pods -n awx
NAME READY STATUS RESTARTS AGE
awx-operator-controller-manager-59669d4d4-6wcck 1/2 ImagePullBackOff 0 36s
root@vm-srv-ubu-awx:~/awx-operator-install# kubectl get deployments -n awx
NAME READY UP-TO-DATE AVAILABLE AGE
awx-operator-controller-manager 0/1 1 0 44s
root@vm-srv-ubu-awx:~/awx-operator-install# kubectl get crd | grep awx
awxbackups.awx.ansible.com 2026-03-08T16:54:22Z
awxrestores.awx.ansible.com 2026-03-08T16:54:22Z
awxs.awx.ansible.com 2026-03-08T16:54:22Z</pre><p>&nbsp;</p>
<h3><strong>CREAZIONE DI AWX</strong></h3>
<p>L’operator supporta servizi ClusterIP, LoadBalancer e NodePort; per ingress di default non crea nulla finché non imposti ingress_type.</p>
<p>Supporta ingress_type: ingress e campi come ingress_class_name, ingress_hosts, ingress_annotations.</p>
<p>Di seguito riporto una configurazione pulita con:</p>
<ul>
<li>service interno ClusterIP</li>
<li>Ingress gestito da Traefik</li>
<li>hostname dedicato</li>
<li>storage class local-path</li>
<li>admin password predefinita in Secret</li>
<li>Crea la password admin</li>
</ul>
<p>La documentazione AWX chiarisce che <strong>admin_password_secret</strong> deve essere un Secret Kubernetes; se non lo si passa, l’operator genera <strong>&lt;resourcename&gt;-admin-password</strong>.</p>
<p>Eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">cat &gt; awx-admin-secret.yaml &lt;&lt;'EOF'
apiVersion: v1
kind: Secret
metadata:
name: awx-admin-password
namespace: awx
stringData:
password: "AwxAdmin!2026"
EOF</pre><p>Applicare con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl apply -f awx-admin-secret.yaml</pre><p>Creare il manifest di AWX con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">cat &gt; awx.yaml &lt;&lt;'EOF'
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
namespace: awx
spec:
admin_user: admin
admin_email: admin@example.local
admin_password_secret: awx-admin-password

service_type: ClusterIP

ingress_type: ingress
ingress_class_name: traefik
ingress_annotations: |
kubernetes.io/ingress.class: traefik
ingress_hosts:
- hostname: awx.mypsx.net

projects_persistence: true
projects_storage_class: local-path
projects_storage_size: 5Gi

postgres_storage_class: local-path
postgres_storage_requirements:
requests:
storage: 8Gi

web_resource_requirements:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2Gi

task_resource_requirements:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1
memory: 2Gi
EOF</pre><p>Applicare con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl apply -f awx.yaml</pre><p>Controllare l’avanzamento con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get pods -n awx -w</pre><p>Quando i pod sono pronti eseguire i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get awx -n awx
kubectl get svc -n awx
kubectl get ingress -n awx
kubectl get pvc -n awx</pre><p>&nbsp;</p>
<h3><strong>RECUPERARE LA PASSWORD DI AWX</strong></h3>
<p>Se hai usato il Secret che ti ho fatto creare in precedenza la password è già quella impostata.</p>
<p>In ogni caso la doc ufficiale AWX indica che la password è leggibile dal secret &lt;resourcename&gt;-admin-password.</p>
<p>Nel nostro caso eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl get secret awx-admin-password -n awx -o jsonpath="{.data.password}" | base64 --decode ; echo</pre><p>Aprire quindi il seguente link da qun qualsiasi browser:</p>
<p><strong>http://awx.mypsx.net</strong></p>
<p>oppure se il tuo ingress forza HTTPS in base alla configurazione del controller/certificato aprire il seguente link:</p>
<p><strong>https://awx.mypsx.net</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-04.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123142 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-04-1024x489.png" alt="" width="1024" height="489" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-04-980x468.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/03/install-awx-rancher-ks3-04-480x229.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Se è tutto corretto dovremmo visualizzare la pagina di accesso di AWX</p>
<p>&nbsp;</p>
<h3><strong>AWX NON RISPONDE SUBITO: COSA FARE?</strong></h3>
<p>Controlli rapidi da eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">kubectl describe awx awx -n awx
kubectl logs -n awx deployment/awx-operator-controller-manager
kubectl get events -n awx --sort-by=.metadata.creationTimestamp
kubectl describe ingress -n awx
kubectl describe pvc -n awx</pre><p>I problemi più comuni sono questi:</p>
<p><strong>hostname non risolto</strong>: verifica ping awx.test.lab</p>
<p><strong>pod postgres in errore</strong>: quasi sempre storage/PVC</p>
<p><strong>Ingress creato ma la pagina non si apre</strong>: verificare che Traefik sia attivo in kube-system</p>
<p><strong>AWX ancora Progressing</strong>: aspettare qualche minuto, il primo deploy scarica molte immagini e ci va tempo</p>
<p>&nbsp;</p>
<h3><strong>AGGIORNAMENTI FUTURI</strong></h3>
<p><strong>K3s</strong>: usa una versione supportata dalla matrice Rancher prima di aggiornare Rancher o Kubernetes.</p>
<p><strong>cert-manager</strong>: aggiornalo con Helm, mantenendo una release supportata.</p>
<p><strong>AWX Operator:</strong> usa tag espliciti e non devel in produzione/lab stabile. La doc base dell’operator è proprio costruita attorno al concetto di tag/versione.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/installazione-di-awx-su-k3s-con-lutilizzo-di-rancher/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione e Configurazione Completa di un Server AI su Intel N100 con Ollama utilizzando Open-WebUI e Agent RAG</title>
		<link>https://www.raffaelechiatto.com/installazione-e-configurazione-completa-di-un-server-ai-su-intel-n100-con-ollama-utilizzando-open-webui-e-agent-rag/</link>
					<comments>https://www.raffaelechiatto.com/installazione-e-configurazione-completa-di-un-server-ai-su-intel-n100-con-ollama-utilizzando-open-webui-e-agent-rag/#respond</comments>
		
		<dc:creator><![CDATA[Angelo Lauria]]></dc:creator>
		<pubDate>Mon, 04 May 2026 05:56:39 +0000</pubDate>
				<category><![CDATA[Ollama]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[ollama]]></category>
		<category><![CDATA[open-webui]]></category>
		<category><![CDATA[rag]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123057</guid>

					<description><![CDATA[&#160; In questa guida vedremo come installare e configurare un Server AI completo e replicabile basato su Ubuntu 24.04 LTS e hardware Intel N100, ottimizzato per ambienti domestici o piccoli laboratori IT. ARCHITETTURA E PREREQUISITI L’infrastruttura prevede: Ollama per l’esecuzione dei modelli LLM locali Open-WebUI come interfaccia web moderna stile ChatGPT Agent AI (RAG Server) [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091058 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<p>&nbsp;</p>
<p>In questa guida vedremo come installare e configurare un Server AI completo e replicabile basato su Ubuntu 24.04 LTS e hardware Intel N100, ottimizzato per ambienti domestici o piccoli laboratori IT.</p>
<h3></h3>
<h3><strong>ARCHITETTURA E PREREQUISITI</strong></h3>
<p>L’infrastruttura prevede:</p>
<p>Ollama per l’esecuzione dei modelli LLM locali<br />
Open-WebUI come interfaccia web moderna stile ChatGPT<br />
Agent AI (RAG Server) per estendere le funzionalità con documenti, embedding e automazioni<br />
Nginx con HTTPS per un accesso sicuro<br />
Ottimizzazioni CPU, RAM (zram), LVM e hardening di base<br />
La guida è completamente replicabile, strutturata passo-passo e pensata per ottenere un sistema:<br />
Performante anche su hardware a basso consumo e Sicuro (zero porte AI esposte)</p>
<p>Pronto per utilizzo personale o laboratorio professionale</p>
<p>Al termine avrai un’infrastruttura AI locale stabile, organizzata e pronta per essere integrata nella tua rete (anche su VLAN dedicata).</p>
<p>Base: Ubuntu 24.04 LTS minimal<br />
Hardware: Intel N100 – 16/32GB RAM – NVMe</p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DEL SISTEMA BASE</strong></h3>
<p>Aggiornamento sistema</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y</pre><p></p>
<h3></h3>
<h3><strong>OTTIMIZZAZIONE N100</strong></h3>
<p>Governor performance</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt install cpufrequtils -y
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils</pre><p>&nbsp;</p>
<h3><strong>ZRAM</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt install zram-tools -y
sudo nano /etc/default/zramswap</pre><p>Impostare la percentuale della memoria adeguata (es 50%)</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl restart zramswap</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DOCKER</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp docker</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE OLLAMA</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">curl -fsSL https://ollama.com/install.sh | sh</pre><p>Procedere con l&#8217;Hardening Ollama:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl edit ollama</pre><p>Inserire il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">ini
[Service]
Environment="OLLAMA_NO_CLOUD=true"
Environment="OLLAMA_HOST=127.0.0.1"
Environment="OLLAMA_NUM_PARALLEL=1"
Environment="OLLAMA_MAX_QUEUE=8"
Environment="OLLAMA_KEEP_ALIVE=5m"</pre><p>Poi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo systemctl daemon-reload
sudo systemctl restart ollama</pre><p>Scaricare i modelli consigliati</p><pre class="urvanov-syntax-highlighter-plain-tag">ollama pull phi3
ollama pull mistral
ollama pull deepseek-coder:6.7b-instruct-q4_K_M
ollama pull nomic-embed-text</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE OPEN-WEBUI</strong></h3>
<p>Creare una cartella persistente con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo mkdir -p /data-ai/openwebui
sudo chown -R $USER:$USER /data-ai</pre><p>Avviare il container sicuro con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">docker run -d --name open-webui -p 127.0.0.1:3000:8080 -e OLLAMA_BASE_URL=http://127.0.0.1:11434 -e CORS_ALLOW_ORIGIN=https://ai.local -v /data-ai/openwebui:/app/backend/data --restart always ghcr.io/open-webui/open-webui:main</pre><p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI NGINX PER HTTPS</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo apt install nginx -y
sudo mkdir -p /etc/nginx/ssl</pre><p>Generare un certificato self-signed con i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
-keyout /etc/nginx/ssl/ai.key \
-out /etc/nginx/ssl/ai.crt</pre><p>Procedere con la configurazione del vhost:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo nano /etc/nginx/sites-available/ai</pre><p>Contenuto completo da copiare all&#8217;interno del file di configurazione:</p><pre class="urvanov-syntax-highlighter-plain-tag">nginx
server {
listen 80;
server_name ai.local;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name ai.local;

ssl_certificate /etc/nginx/ssl/ai.crt;
ssl_certificate_key /etc/nginx/ssl/ai.key;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
server_tokens off;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}</pre><p>Attivare il sito con i comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">sudo ln -s /etc/nginx/sites-available/ai /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx</pre><p>&nbsp;</p>
<h3><strong>FIREWALL BASE</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 443/tcp
sudo ufw allow from 192.168.3.0/24 to any port 22
sudo ufw enable</pre><p>&nbsp;</p>
<h3><strong>VERIFICA FINALE</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">ss -tulnp</pre><p>Deve risultare:</p><pre class="urvanov-syntax-highlighter-plain-tag">0.0.0.0:443
0.0.0.0:80
0.0.0.0:22
127.0.0.1:3000
127.0.0.1:11434</pre><p>&nbsp;</p>
<h3><strong>BACKUP CONFIGURAZIONE</strong></h3>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">sudo mkdir -p /data-ai/backups

sudo tar -czf /data-ai/backups/ai_stack_backup_$(date +%F).tar.gz /etc/nginx /etc/systemd/system/ollama.service.d /data-ai /home/$USER/.ollama</pre><p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/installazione-e-configurazione-completa-di-un-server-ai-su-intel-n100-con-ollama-utilizzando-open-webui-e-agent-rag/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installazione e Configurazione Base di Nutanix Community Edition (CE) 2.1 su VmWare ESXi 8</title>
		<link>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-nutanix-community-edition-ce-2-1-su-vmware-esxi-8/</link>
					<comments>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-nutanix-community-edition-ce-2-1-su-vmware-esxi-8/#respond</comments>
		
		<dc:creator><![CDATA[Raffaele Chiatto]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 06:38:21 +0000</pubDate>
				<category><![CDATA[Nutanix]]></category>
		<category><![CDATA[VmWare]]></category>
		<category><![CDATA[nested]]></category>
		<category><![CDATA[nutanix]]></category>
		<category><![CDATA[virtualizzazione]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123001</guid>

					<description><![CDATA[&#160; Negli ultimi anni l’infrastruttura iperconvergente (HCI) è diventata uno standard di riferimento per chi desidera ambienti IT più semplici, scalabili e performanti. Tra le soluzioni più interessanti in questo ambito troviamo Nutanix Community Edition (CE) 2.1, la versione gratuita pensata per laboratori, test e ambienti di apprendimento. Installare Nutanix CE su VMware ESXi 8 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091058 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/ADVANCED-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<p>&nbsp;</p>
<p>Negli ultimi anni l’infrastruttura iperconvergente (HCI) è diventata uno standard di riferimento per chi desidera ambienti IT più semplici, scalabili e performanti.</p>
<p>Tra le soluzioni più interessanti in questo ambito troviamo Nutanix Community Edition (CE) 2.1, la versione gratuita pensata per laboratori, test e ambienti di apprendimento.</p>
<p>Installare Nutanix CE su VMware ESXi 8 rappresenta un’ottima opportunità per sperimentare concretamente le funzionalità della piattaforma Nutanix senza dover disporre di hardware dedicato.</p>
<p>Grazie alla virtualizzazione nested, è possibile creare un laboratorio completo direttamente sopra ESXi, ideale per amministratori di sistema, consulenti IT e appassionati che vogliono approfondire il funzionamento di AOS, Prism e dei principali componenti dell’ecosistema Nutanix.</p>
<p>In questo articolo vedremo passo dopo passo come installare e configurare correttamente Nutanix Community Edition 2.1 su VMware ESXi 8, partendo dai prerequisiti fino alla prima configurazione base del cluster, con suggerimenti pratici per evitare gli errori più comuni e ottenere un ambiente stabile e funzionante sin dal primo avvio.</p>
<p>&nbsp;</p>
<h3><strong>PREREQUISITI</strong></h3>
<p>I requisiti per Nutanix CE sono:</p>
<p>Minimo 32GB di memoria<br />
Minimo 4 core CPU<br />
Minimo 64GB di Boot Disk<br />
Minimo 200GB di disco Hot Tier<br />
Minimo 500GB di disco cold Tier</p>
<p>Download della ISO Nutanix Community Edition al seguente link:</p>
<p><a href="https://next.nutanix.com/discussion-forum-14/download-community-edition-38417" target="_blank" rel="noopener">Download Nutanix Community Edition</a></p>
<p><strong>ATTENZIONE</strong>: per scaricare la ISO è necessaria la registrazione con una mail aziendale</p>
<p>&nbsp;</p>
<h3><strong>CREAZIONE E CONFIGURAZIONE DELLA VM SU VSPHERE</strong></h3>
<p>Accedere al vCenter o all&#8217;host ESXi singolo quindi selezionare <strong>New Virtual Machine</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-01.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123020 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-01-1024x683.png" alt="" width="1024" height="683" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-01-1024x683.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-01-980x653.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-01-480x320.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare l&#8217;opzione <strong>Create a new virtual machine</strong> quindi cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-02.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123021 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-02-1024x680.png" alt="" width="1024" height="680" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-02-1024x680.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-02-980x651.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-02-480x319.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Inserire il nome della VM, scegliere la location quindi cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-03.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123022 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-03-1024x680.png" alt="" width="1024" height="680" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-03-1024x680.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-03-980x651.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-03-480x319.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare l&#8217;Host quindi cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-04.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123023 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-04-1024x679.png" alt="" width="1024" height="679" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-04-1024x679.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-04-980x650.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-04-480x318.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare il Datastore quindi cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-05.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123024 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-05-1024x681.png" alt="" width="1024" height="681" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-05-1024x681.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-05-980x652.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-05-480x319.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare la compatibilità quindi cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-06.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123025 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-06-1024x680.png" alt="" width="1024" height="680" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-06-1024x680.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-06-980x650.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-06-480x319.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Configurare i seguenti parametri come di seguito:</p>
<p><strong>Guest OS Family</strong>: Linux</p>
<p><strong>Guest OS Version</strong>: CentOS 7 (64-bit)</p>
<p>Cliccare <strong>Next</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123026 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07-1024x681.png" alt="" width="1024" height="681" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07-1024x681.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07-980x652.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07-480x319.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Impostare l&#8217;Hardware della VM come da Prerequisiti quindi agganciare la ISO di Nutanix CE. Cliccare <strong>Next</strong></p>
<p><strong>ATTENZIONE</strong>: dato che è un installazione Nested è indispensabile attivare l&#8217;opzione relativa alla <strong>CPU Expose hardware assisted virtualization to the guest OS</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123027 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07a.png" alt="" width="778" height="782" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07a.png 778w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-07a-480x482.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 778px, 100vw" /></a></p>
<p>Selezionare l&#8217;opzione CPU <strong>Expose hardware assisted virtualization to the guest OS</strong> quindi cliccare <strong>OK</strong></p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123028 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08-1024x677.png" alt="" width="1024" height="677" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08-1024x677.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08-980x648.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08-480x317.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Leggere il riepilogo quindi cliccare <strong>Finish</strong> per terminare la creazione della VM</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08a.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123029 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08a-1024x627.png" alt="" width="1024" height="627" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08a-1024x627.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08a-980x600.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-08a-480x294.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare l&#8217;Host dove abbiamo creato la Vm quindi <strong>vSwitch → Security → Edit</strong></p>
<p>Sul Virtual Switch dove è collegata la VM è necessario abilitare:</p>
<p><strong>Promiscuous Mode → Accept</strong></p>
<p><strong>MAC Address Changes → Accept</strong></p>
<p><strong>Forged Transmits → Accept</strong></p>
<p>Al termine avviare la VM</p>
<p>&nbsp;</p>
<h3><strong>INSTALLAZIONE DI NUTANIX</strong></h3>
<p>Dopo aver avviato la VM attendere la schermata di configurazione</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-09.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123030 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-09-1024x764.png" alt="" width="1024" height="764" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-09-1024x764.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-09-980x731.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-09-480x358.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>In questa fase è indispensabile definire:</p>
<ul>
<li><strong>Disk Selection:</strong> il disco dove andremo ad installare Nutanix</li>
<li><strong>Host IP Address</strong>: AHV (Acropolis Hypervisor) è l’hypervisor di Nutanix. Lo si utilizza per l&#8217;Accesso SSH all’host, per la Gestione di basso livello e per il Troubleshooting tecnico</li>
<li><strong>CVM IP Address</strong>: CVM (Controller Virtual Machine) è una VM speciale che gira sopra AHV. Il CVM si occupa di:</li>
</ul>
<p>Storage distribuito (Nutanix Distributed Storage Fabric)</p>
<ul>
<li>Replica dati</li>
<li>Compressione e deduplicazione</li>
<li>Gestione del cluster</li>
<li>Servizi di storage per tutte le VM</li>
</ul>
<p>Quindi cliccare <strong>Next Page</strong> per proseguire</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-10.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123031 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-10-1024x767.png" alt="" width="1024" height="767" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-10-1024x767.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-10-980x734.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-10-480x359.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Accettare l&#8217;EULA quindi cliccare <strong>Start</strong></p>
<p><strong>ATTENZIONE</strong>: scrollare fino in fondo il testo della licenza altrimenti l&#8217;installazione andrà in errore</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-11.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123032 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-11-1024x723.png" alt="" width="1024" height="723" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-11-1024x723.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-11-980x692.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-11-480x339.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Attendere qualche minuto fino al termine dell&#8217;installazione</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-12.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123033 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-12-1024x745.png" alt="" width="1024" height="745" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-12-1024x745.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-12-980x713.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-12-480x349.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Rimuovere la ISO dalla VM quindi premre <strong>Y</strong> per riavviare il server</p>
<p>Poiché non abbiamo specificato i server DNS durante la creazione del cluster, Community Edition configurerà due server DNS di Google.</p>
<p>&nbsp;</p>
<h3><strong>CONFIGURAZIONE DEL CLUSTER</strong></h3>
<p>Accedere in SSH al Controller Virtual Machine (CVM)</p>
<p>Le credenziali di accesso sono:</p>
<p><strong>USER:</strong> nutanix</p>
<p><strong>PASSWORD</strong>: nutanix/4u</p>
<p>Verificare lo stato del cluster con il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">cluster status</pre><p>Dovremmo visualizzare il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">863Z CRITICAL MainThread cluster:3241 Cluster is currently unconfigured. Please create the cluster.</pre><p>Questo messaggio vuol dire che Nutanix CE è installato ma il cluster non è stato ancora creato.</p>
<p>Per creare il cluster eseguire il comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">cluster -s IP_CVM create</pre><p><strong>NOTA BENE</strong>: al posto di IP_CVM inserire l&#8217;IP</p>
<p>A questo punto attendere dai 5 ai 10 minuti fin quando non visualizziamo il seguente output:</p><pre class="urvanov-syntax-highlighter-plain-tag">The state of the cluster: start
Lockdown mode: Disabled

CVM: 192.168.80.30 Up, ZeusLeader
Xmount UP [67112, 67311, 67312, 67364]
IkatProxy UP [66890, 67063, 67064, 67065]
Zeus UP [62547, 62606, 62607, 62608, 62617, 62635]
Scavenger UP [67121, 67358, 67359, 67360]
SysStatCollector UP [72320, 72450, 72451, 72452]
IkatControlPlane UP [72497, 72632, 72633, 72634]
SSLTerminator UP [72543, 72918, 72919]
SecureFileSync UP [73035, 73425, 73426, 73427]
Medusa UP [76451, 76594, 76595, 76608, 76940]
DynamicRingChanger UP [81714, 81831, 81832, 81878]
Pithos UP [81767, 81980, 81981, 81995]
InsightsDB UP [81861, 82101, 82102, 82117]
Athena UP [82039, 82283, 82284, 82285]
Mercury UP [82109, 82410, 82411, 82427]
Mantle UP [82436, 83305, 83306, 83342]
VipMonitor UP [84502, 84503, 84504, 84505, 84512]
Stargate UP [84708, 84993, 84994, 85053, 85054]
InsightsDataTransfer UP [85983, 86901, 86902, 86924, 86925, 86926, 86927, 86928, 86929]
GoErgon UP [86486, 87087, 87088, 87102]
Cerebro UP [86946, 87182, 87183, 87327]
Chronos UP [87097, 87266, 87267, 87320]
Curator UP [87488, 89412, 89413, 89871]
Prism UP [89195, 90404, 90405, 90544, 91212, 91335]
Hera UP [90080, 91028, 91029, 91030]
AlertManager UP [90500, 91141, 91142, 91261]
Arithmos UP [91407, 91715, 91716, 91752]
Catalog UP [91631, 91862, 91863, 91864, 91880]
Acropolis UP [92300, 93155, 93156, 96895]
Castor UP [93282, 94130, 94131, 94170, 94390]
Uhura UP [93378, 94355, 94356, 95233]
NutanixGuestTools UP [94347, 95269, 95270, 95317, 95468]
MinervaCVM UP [102317, 103168, 103169, 103171]
ClusterConfig UP [102778, 103459, 103460, 103461, 103480]
APLOSEngine UP [103370, 103972, 103973, 103975]
APLOS UP [107523, 108515, 108516, 108517]
PlacementSolver UP [108130, 108742, 108743, 108744, 108761]
Lazan UP [108424, 109136, 109137, 109138]
Polaris UP [109259, 110216, 110217, 110416]
Delphi UP [109699, 110725, 110726, 110727, 110748]
Security UP [110843, 111542, 111543, 111545]
Flow UP [111445, 112690, 112691, 112692, 112708]
Anduril UP [112736, 113445, 113446, 113447, 113481]
Narsil UP [113309, 114179, 114180, 114181]
XTrim UP [113492, 114735, 114736, 114738]
ClusterHealth UP [114066, 115634, 116420, 116423, 116431, 116446, 116603, 116604, 116613, 116619, 116620, 116735, 116736, 116743, 116753, 116754, 116755, 116756, 116757, 116766, 116955, 116956, 117043, 117044, 117133, 117134, 117148, 117149]
2026-02-22 11:31:09,341Z INFO MainThread cluster:1745 Running CE cluster post-create script
2026-02-22 11:31:27,377Z INFO MainThread cluster:3465 Success!</pre><p>&nbsp;</p>
<h3><strong>ACCESSO ALLA GUI WEB DI NUTANIX</strong></h3>
<p>Il cluster è accessibile da un qualsiasi browser tramite <strong>https://&lt;cvm_ip&gt;:9440</strong>.</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-13.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123034 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-13-1024x491.png" alt="" width="1024" height="491" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-13-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-13-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Accedere con le seguente credenziali:</p>
<p><strong>USER</strong>: admin</p>
<p><strong>PASSWORD</strong>: nutanix/4u</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-14.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123036 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-14-1024x493.png" alt="" width="1024" height="493" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-14-980x472.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-14-480x231.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Procedere con il cambio password</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-15.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123037 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-15-1024x491.png" alt="" width="1024" height="491" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-15-980x470.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-15-480x230.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Accedere con la nuova password</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-16.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123038 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-16-1024x489.png" alt="" width="1024" height="489" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-16-980x468.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-16-480x229.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Inserire le credenziali creare in fase di registrazione al portale Nutanix</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-17.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123039 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-17-1024x482.png" alt="" width="1024" height="482" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-17-980x461.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/02/install-nutanix-vmware-17-480x226.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Se abbiamo fatto correttamante dovremmo visualizzare la Dashboard di Nutanix come mostrato nell&#8217;immagine sovrastante</p>
<p>&nbsp;</p>
<h3><strong>CONCLUSIONI</strong></h3>
<p>L’installazione e la configurazione base di Nutanix Community Edition (CE) 2.1 su VMware ESXi 8 rappresentano un’ottima opportunità per approfondire in modo pratico il funzionamento dell’ecosistema Nutanix senza la necessità di disporre di hardware dedicato.</p>
<p>Attraverso pochi passaggi mirati è possibile creare un ambiente di laboratorio funzionale ideale per test, formazione e sperimentazione.</p>
<p>Abbiamo visto come preparare correttamente la macchina virtuale su ESXi configurare le risorse in modo adeguato e completare la fase di bootstrap del cluster.</p>
<p>Una corretta pianificazione iniziale soprattutto in termini di CPU, RAM e storage è fondamentale per garantire stabilità e performance accettabili, anche in un contesto nested.</p>
<p>Nutanix CE 2.1 consente di esplorare funzionalità chiave come AHV, Prism e la gestione dello storage distribuito, offrendo un’esperienza molto vicina a quella di un ambiente enterprise.</p>
<p>Sebbene non sia pensata per ambienti di produzione rimane uno strumento estremamente potente per chi desidera acquisire competenze concrete sull’infrastruttura iperconvergente.</p>
<p>Il passo successivo? Approfondire funzionalità avanzate come la creazione di macchine virtuali su AHV, la gestione delle reti virtuali, snapshot, replica e integrare il laboratorio con altre tecnologie per simulare scenari reali.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/installazione-e-configurazione-base-di-nutanix-community-edition-ce-2-1-su-vmware-esxi-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aggiornamento delle variabili EFI e dei componenti del Secure Boot con la Microsoft UEFI CA 2023</title>
		<link>https://www.raffaelechiatto.com/aggiornamento-delle-variabili-efi-e-dei-componenti-del-secure-boot-con-la-microsoft-uefi-ca-2023/</link>
					<comments>https://www.raffaelechiatto.com/aggiornamento-delle-variabili-efi-e-dei-componenti-del-secure-boot-con-la-microsoft-uefi-ca-2023/#respond</comments>
		
		<dc:creator><![CDATA[Marco Valle]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 05:47:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Proxmox]]></category>
		<category><![CDATA[Secure Boot]]></category>
		<category><![CDATA[UEFI]]></category>
		<category><![CDATA[VmWare]]></category>
		<category><![CDATA[bios]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[HPE]]></category>
		<category><![CDATA[lenovo]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[secureboot]]></category>
		<category><![CDATA[shim]]></category>
		<category><![CDATA[vmware]]></category>
		<guid isPermaLink="false">https://www.raffaelechiatto.com/?p=1123359</guid>

					<description><![CDATA[INTRODUZIONE &#160; UEFI E Secure Boot La tecnologia UEFI ha rimpiazzato da molti anni il BIOS classico e sfrutta la crittografia asimmetrica per validare l’integrità del boot loader prima della sua esecuzione. Il metodo di validazione si basa su una catena di fiducia (Chain of Trust): Il certificato PK (Platform Key), installato dal produttore della [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="size-full wp-image-1091057 alignnone" src="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR.png" alt="" width="679" height="89" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR.png 679w, https://www.raffaelechiatto.com/wp-content/uploads/2020/12/DIFFICULT-BAR-480x63.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 679px, 100vw" /></p>
<h3><strong>INTRODUZIONE</strong></h3>
<p>&nbsp;</p>
<h4><strong>UEFI E Secure Boot</strong></h4>
<p>La tecnologia UEFI ha rimpiazzato da molti anni il BIOS classico e sfrutta la crittografia asimmetrica per validare l’integrità del boot loader prima della sua esecuzione.<br />
Il metodo di validazione si basa su una catena di fiducia (Chain of Trust):</p>
<ul>
<li>Il certificato PK (Platform Key), installato dal produttore della scheda madre, rappresenta la radice di fiducia dell&#8217;hardware.</li>
<li>Mediante la PK viene autorizzata la KEK (Key Exchange Key), che identifica i produttori di sistemi operativi autorizzati a modificare i database delle firme.</li>
<li>La KEK permette di aggiornare i database DB (Authorized Signature) e DBX (Forbidden Signature), che contengono i certificati o gli hash dei boot loader e dei driver effettivamente autorizzati all&#8217;avvio.</li>
</ul>
<p>Microsoft, in quanto leader di mercato dei sistemi operativi per i PC, agisce come Autorità di Certificazione (CA) principale e le sue chiavi sono pre-installate nella quasi totalità dei dispositivi.<br />
Di conseguenza, anche i sistemi Linux dipendono da questa infrastruttura: Microsoft firma digitalmente i componenti <strong>shim</strong> (piccoli boot loader intermedi), i quali a loro volta gestiscono una lista locale di chiavi chiamata MOK (Machine Owner Key).<br />
Questo sistema a <strong>ponte</strong> permette alle distribuzioni Linux di aggiornare il proprio kernel senza dover richiedere una nuova firma a Microsoft per ogni rilascio.</p>
<h4></h4>
<h4><strong>Scadenza Microsoft Corporation UEFI CA 2011</strong></h4>
<p>Il certificato <strong>Microsoft Corporation UEFI CA 2011</strong>, utilizzato per oltre un decennio per firmare la quasi totalità dei boot loader e driver UEFI (inclusi quelli Linux), è giunto a fine vita naturale.<br />
La scadenza non implicherà immediatamente il fallimento del boot dei sistemi operativi, poiché finché esso non verrà revocato, aggiungendolo al database DBX, i sistemi già installati potranno comunque avviarsi.<br />
Tuttavia, verrà inibita la possibilità di installazione di nuovi sistemi operativi e non sarà più possibile applicare patch critiche per il boot loader, poiché le nuove versioni (firmate con la CA 2023) verrebbero considerate <strong>non attendibili</strong> dal firmware non aggiornato.<br />
La sostituzione del vecchio certificato con la nuova CA 2023 non è una semplice operazione software, ma richiede un duplice intervento: l’aggiornamento delle variabili EFI attive (tramite patch del sistema operativo) e l&#8217;aggiornamento delle variabili di default (tramite aggiornamento del firmware BIOS/UEFI o caricamento manuale).<br />
Il mancato aggiornamento, oltre alle limitazioni operative descritte, impedisce la revoca del vecchio certificato tramite DBX.<br />
Questo lascia il parco macchine vulnerabile a boot loader compromessi o obsoleti, che possono essere sfruttati da malware di nuova generazione (come BlackLotus) per bypassare integralmente le protezioni del Secure Boot.</p>
<h3><strong>AUDITING</strong></h3>
<p>&nbsp;</p>
<h4><strong>Prefazione</strong></h4>
<p>Prima di poter procedere con le operazioni correttive è necessario mappare lo stato attuale della propria flotta di dispositivi con Secure Boot attivo.<br />
Tutti i comandi proposti in questo paragrafo necessitano dei diritti amministrativi (root o membro di Administrators) per poter essere eseguiti.<br />
Le modifiche sul portale Microsoft Intune necessitano che l’utente abbia attivo il ruolo di <strong>Intune Administrator</strong> o di <strong>Global Administrator</strong>.</p>
<h4><strong>Audit dello stato del Secure Boot</strong></h4>
<p>Con i seguenti comandi è possibile verificare se il Secure Boot è abilitato e su Windows lo stato della CA 2023:</p>
<table style="height: 100%; width: 100%; border-style: solid; border-color: #000000;" border="1" width="100%">
<tbody>
<tr style="height: 23px;">
<td style="width: 151.333px; height: 23px; text-align: center;"><strong>Metrica</strong></td>
<td style="width: 565.217px; height: 23px; text-align: center;"><strong>PowerShell</strong></td>
<td style="width: 211.45px; height: 23px; text-align: center;"><strong>Bash</strong></td>
</tr>
<tr style="height: 23px;">
<td style="width: 151.333px; height: 23px;">Stato Secure Boot</td>
<td style="width: 565.217px; height: 23px;">((Get-SecureBootUEFI -Name SecureBoot).Bytes -contains 1)</td>
<td style="width: 211.45px; height: 23px;">mokutil &#8211;sb-state</td>
</tr>
<tr style="height: 47px;">
<td style="width: 151.333px; height: 47px;">Stato Update 2023</td>
<td style="width: 565.217px; height: 47px;">(Get-ItemProperty -Path &#8220;HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing&#8221;).UEFICA2023Status</td>
<td style="width: 211.45px; height: 47px;">N/A</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><strong>Audit dello stato del Secure Boot mediante Intune</strong></h4>
<p>Microsoft Intune include una funzionalità che analizza i dispositivi gestiti e genera un report dello stato del Secure Boot.<br />
La funzionalità è disponibile solamente se si ha attivato la telemetria sul tenant, per farlo navigare su <strong>Tenant administration</strong> e poi cliccare su <strong>Connectors and tokens</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_01.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123374 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_01-1024x346.png" alt="" width="1024" height="346" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_01-980x331.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_01-480x162.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Selezionare <strong>Windows data</strong> ed abilitare <strong>Enable features that require Windows diagnostic data in processor configuration</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_02.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123375 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_02-1024x367.png" alt="" width="1024" height="367" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_02-980x351.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_02-480x172.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Affinché la modifica venga applicata è possibile che siano necessari fino a tre giorni.<br />
Per visualizzare il report, navigare su <strong>Reports</strong> e selezionare <strong>Window quality update</strong>, navigare su <strong>Reports</strong> e selezionare <strong>Secure boot status</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_03.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123376 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_03-1024x428.png" alt="" width="1024" height="428" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_03-980x409.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_03-480x201.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Nella pagina successiva viene mostrato il report:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_04.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123377 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_04-1024x537.png" alt="" width="1024" height="537" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_04-980x513.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_04-480x251.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Mediante il pulsante <strong>Export</strong> è possibile esportarlo in un file CSV.<br />
L’aggiornamento dello stato dei dispositivi può richiedere diverse ore da quando viene applicato a quando viene mostrato sul portale.</p>
<h4><strong>Audit dello stato delle variabili EFI</strong></h4>
<p>Di seguito viene riportata una tabella con i comandi necessari a verificare lo stato delle variabili EFI, al fine di evitare regressioni future, è necessario evidenziare la distinzione tra le variabili nello stato <strong>Active</strong> e quelle nello stato <strong>Default</strong>:</p>
<ul>
<li>Le variabili <strong>Active</strong> sono salvate nella NVRAM, vengono caricate durante il Secure Boot per essere utilizzate per la validazione del boot loader e possono venir aggiornate dal sistema operativo.</li>
<li>Le variabili <strong>Default</strong> sono memorizzate nel chip BIOS/UEFI dal produttore della scheda madre, vengono utilizzate per sovrascrivere le variabili <strong>Active</strong> durante il ripristino alle impostazioni di fabbrica e per modificarle è necessario l’aggiornamento del firmware o l’upload manuale (dove applicabile).</li>
</ul>
<p>&nbsp;</p>
<table style="height: 161px; border-style: solid; border-color: #000000; width: 100%;" border="1" width="100%x">
<tbody>
<tr style="height: 23px;">
<td style="width: 106px; text-align: center; height: 23px;"><strong>Componente</strong></td>
<td style="width: 96.5667px; text-align: center; height: 23px;" colspan="2"><strong>Ambito</strong></td>
<td style="width: 514.217px; text-align: center; height: 23px;" colspan="2"><strong>PowerShell</strong></td>
<td style="width: 327px; text-align: center; height: 23px;"><strong>Bash</strong></td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">DB (Allowed)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">Active (Live)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).Bytes) -match &#8216;2023&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2023&#8221; /sys/firmware/efi/efivars/db-*</td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">DB (Allowed)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">BIOS (Default)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbDefault).Bytes) -match &#8216;2023&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2023&#8221; /sys/firmware/efi/efivars/dbDefault-*</td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">KEK (Editor)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">Active (Live)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI KEK).Bytes) -match &#8216;2023&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2023&#8221; /sys/firmware/efi/efivars/KEK-*</td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">KEK (Editor)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">BIOS (Default)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI KEKDefault).Bytes) -match &#8216;2023&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2023&#8221; /sys/firmware/efi/efivars/KEKDefault-*</td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">DBX (Revoked)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">Active (Live)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).Bytes) -match &#8216;2011&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2011&#8221; /sys/firmware/efi/efivars/dbx-*</td>
</tr>
<tr style="height: 23px;">
<td style="width: 106px; height: 23px;">DBX (Revoked)</td>
<td style="width: 96.5667px; height: 23px;" colspan="2">BIOS (Default)</td>
<td style="width: 514.217px; height: 23px;" colspan="2">[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbxDefault).Bytes) -match &#8216;2011&#8217;</td>
<td style="width: 327px; height: 23px;">grep -a &#8220;2011&#8221; /sys/firmware/efi/efivars/dbxDefault-*</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><strong>Audit della firma del boot loader</strong></h4>
<p>Successivamente, viene riportata una tabella con i comandi per verificare l’autorità emittente (issuer) che ha firmato il boot loader (o <strong>shim</strong>) in uso:</p>
<table style="height: 100%; border-style: solid; width: 100%; border-color: #000000;" border="1" width="100%">
<tbody>
<tr>
<td style="text-align: center;" width="96"><strong>OS</strong></td>
<td style="text-align: center;" width="608"><strong>Comando</strong></td>
</tr>
<tr>
<td rowspan="2" width="96">Debian</td>
<td width="608">apt-get install -y sbsigntool</td>
</tr>
<tr>
<td width="608">sbverify &#8211;list /boot/efi/EFI/debian/shimx64.efi</td>
</tr>
<tr>
<td rowspan="3" width="96">Proxmox</td>
<td width="608">apt-get install -y sbsigntool</td>
</tr>
<tr>
<td width="608">mount /dev/sda2 /boot/efi # Not always required, change sda2</td>
</tr>
<tr>
<td width="608">sbverify &#8211;list /boot/efi/EFI/proxmox/shimx64.efi</td>
</tr>
<tr>
<td rowspan="2" width="96">RHEL</td>
<td width="608">dnf install -y sbsigntools</td>
</tr>
<tr>
<td width="608">sbverify &#8211;list /boot/efi/EFI/redhat/shimx64.efi</td>
</tr>
<tr>
<td rowspan="4" width="96">Windows</td>
<td width="608">mountvol Z: /S</td>
</tr>
<tr>
<td width="608">$bootMgrPath = &#8220;Z:\EFI\Microsoft\Boot\bootmgfw.efi&#8221;</td>
</tr>
<tr>
<td width="608">$signature = Get-AuthenticodeSignature -FilePath $bootMgrPath</td>
</tr>
<tr>
<td width="608">$signature.SignerCertificate.Issuer</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h4><strong>Audit della firma dei drivers</strong></h4>
<p>Nella seguente tabella sono riportati i comandi per verificare l’autorità emittente (issuer) che ha firmato i drivers installati:</p>
<table style="height: 100%; width: 100%;" border="1">
<tbody>
<tr>
<td style="text-align: center;" width="96"><strong>OS</strong></td>
<td style="text-align: center;" width="608"><strong>Comando</strong></td>
</tr>
<tr>
<td>Windows</td>
<td>$DriverPath = &#8220;C:\Windows\System32\drivers&#8221;<br />
Get-ChildItem -Path $DriverPath -Filter *.sys | ForEach-Object {<br />
$Signature = Get-AuthenticodeSignature -FilePath $_.FullName -ErrorAction SilentlyContinue<br />
[PSCustomObject]@{<br />
FileName = $_.Name<br />
Subject = $Signature.SignerCertificate.Subject<br />
Issuer = $Signature.SignerCertificate.Issuer<br />
}<br />
} | Out-GridView -Title &#8220;Audit drivers signatures&#8221;</td>
</tr>
</tbody>
</table>
<p>Su Linux generalmente non è necessario verificare che la firma dei drivers sia stata effettuata dalla nuova CA, poiché lo <strong>shim</strong> funge da intermediario nella catena di fiducia.</p>
<h3></h3>
<h3><strong>PROCEDURE DI RIMEDIO</strong></h3>
<p>&nbsp;</p>
<h4><strong>Prefazione</strong></h4>
<p>Le procedure correttive descritte in questo capitolo si concentrano sull’inserimento della nuova CA 2023 in DB e sull’aggiornamento del boot loader.<br />
In base al produttore dell’hardware e a quello del sistema operativo la procedura da applicare varia, si consiglia di procedere inizialmente seguendo i passaggi necessari per l’aggiornamento del firmware (dove applicabile) e successivamente all’applicazione della patch del sistema operativo.<br />
Per i produttori di hardware per cui in questo documento non è stata fornita una procedura specifica è, tipicamente, possibile procedere effettuando l’aggiornamento del BIOS/firmware, oppure manualmente iniettando la CA direttamente in DB o in PK.<br />
L’ultimo step consigliato è quello della revoca della CA 2011 inserendola in DBX, alcuni produttori, come HP, sconsigliano di procedere, poiché hanno implementato altre misure di sicurezza per mitigare i rischi legati ai rootkit come <strong>BlackLotus</strong> e perciò la procedura non porterebbe benefici reali.</p>
<h4><strong>Avvertenze sulla revoca</strong></h4>
<p>Le procedure manuali di revoca della CA 2011 rappresentano un&#8217;operazione distruttiva e irreversibile per la catena di avvio se eseguite prematuramente.<br />
Non procedere con la revoca finché non è stata verificata l&#8217;intera catena di boot (boot loader, kernel, driver UEFI e firmware hardware).<br />
L&#8217;applicazione del DBX su sistemi non pronti causerà un <strong>Secure Boot Violation</strong>, rendendo il sistema incapace di avviarsi.</p>
<h4><strong>Aggiornamento delle variabili di default e della firma del firmware</strong></h4>
<p>&nbsp;</p>
<h5><strong>Macchine Virtuali</strong></h5>
<p>&nbsp;</p>
<h5><strong>Proxmox</strong></h5>
<p>Le VM su Proxmox supportano il Secure Boot mediante il BIOS chiamato <strong>OVMF (UEFI)</strong> e l’aggiunta del disco EFI, in cui vengono memorizzare le variabili PK, DB, DBX e KEK attive.<br />
Per una scelta di design del firmware OVMF, le variabili di default non sono disponibili all’interno delle VM, perciò è normale che venga restituito un errore quando si eseguono i rispettivi comandi indicati nella tabella di auditing.<br />
Dalla versione 8.2 di Proxmox VE è stata introdotta una nuova funzionalità che consente agli amministratori di iniettare la nuova CA nelle variabili memorizzate nel disco EFI delle VM direttamente dalla Web UI.<br />
Selezionare la VM da modificare, navigare nel menù <strong>Hardware</strong>, cliccare sul disco EFI e successivamente su <strong>Disk Action</strong>, nel menù a tendina che viene aperto è possibile selezionare <strong>Enroll Updated Certificates</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_05.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123378 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_05-1024x466.png" alt="" width="1024" height="466" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_05-980x446.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_05-480x219.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Si dovrebbe aprire una finestra di dialogo che avverte che la modifica delle variabili EFI potrebbe causare la finestra di ripristino BitLocker all’avvio successivo e che consiglia un comando da eseguire su PowerShell:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_06.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123379 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_06.png" alt="" width="523" height="229" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_06.png 523w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_06-480x210.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 523px, 100vw" /></a><br />
In realtà, il problema non è limitato al BitLocker, poiché qualsiasi strumento di sblocco automatico di partizioni cifrate mediante PCR 7 e TPM viene impattato (es. LUKS con <strong>systemd-cryptenroll</strong>) e perciò è necessario procedere con cautela.<br />
Su alcune VM con BitLocker attivo potrebbe non essere richiesto effettuare questa operazione poiché lo sblocco mediante BitLocker utilizza dei profili di validazione diversi (es. PCR 0,2,4,11) che non includono<br />
lo stato del database delle firme (PCR 7), ma per cautela si consiglia di procedere comunque.<br />
Su Windows è possibile eseguire il seguente comando:</p><pre class="urvanov-syntax-highlighter-plain-tag">Suspend-BitLocker -MountPoint "C:" -RebootCount 1</pre><p>A differenza del commando proposto da Proxmox, questo impatta solo il primo riavvio.<br />
Su Linux non esiste un comando che sospende la protezione perciò è necessario rimuovere lo slot dal TPM, riavviare la VM e ricrearlo.<br />
Per rimuoverlo, se si utilizza <strong>systemd-cryptenroll</strong>, è possibile eseguire il seguente comando (sostituire sda3 con la partizione cifrata):</p><pre class="urvanov-syntax-highlighter-plain-tag">systemd-cryptenroll --wipe-slot=tpm2 /dev/sda3</pre><p>Sia su Windows che su Linux è fortemente consigliato effettuare il backup della chiave di ripristino BitLocker/LUKS prima di procedere e di non far affidamento solamente al TPM.</p>
<h5></h5>
<h5><strong>VMware 7 e precedenti</strong></h5>
<p>Su VMware 7 e precedenti non è disponibile la versione di virtual hardware necessaria per l’aggiornamento automatico delle variabili EFI.<br />
A causa di questa limitazione si consiglia di procedere all’aggiornamento mediante la procedura specifica per il sistema operativo della macchina guest e di inserire una nota affinché nessuno effettui il reset delle variabili EFI dal BIOS della VM.<br />
Se per qualche necessità specifica non fosse possibile procedere mediante patch del sistema operativo, Broadcom fornisce una procedura che permette di sostituire la PK della VM, permettendo quindi di iniettare la CA 2023.<br />
La procedura prevede la creazione di un disco aggiuntivo, formattato in FAT32, in cui copiare la PK, in formato DER, scaricata dal repository ufficiale.<br />
Al riavvio successivo, mediante la modifica di un parametro della VM, è possibile registrare la chiave.<br />
KB di Broadcom: <a href="https://knowledge.broadcom.com/external/article/423919/manual-update-of-secure-boot-variables-i.html" target="_blank" rel="noopener">https://knowledge.broadcom.com/external/article/423919/manual-update-of-secure-boot-variables-i.html</a><br />
Come per VMware 8 e successivi, è possibile aggiornare i VMware Tools alla versione 12.4 o superiore per garantire che i drivers siano firmati dalla nuova CA.</p>
<h5><strong>VMware 8 e successivi</strong></h5>
<p>Su VMware 8 e successivi è sufficiente aggiornare il virtual hardware per inserire tra le variabili EFI la nuova CA.<br />
La versione hardware minima richiesta è la 21 che è stata introdotta con <strong>vSphere 8.0 Update 2</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_07.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123381 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_07.png" alt="" width="691" height="682" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_07.png 691w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_07-480x474.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 691px, 100vw" /></a><br />
Per far sì che anche i drivers vengano aggiornati, è necessario aggiornare i VMware Tools alla versione 12.4 o superiore, mediante il pacchetto ufficiale su Windows o il pacchetto <strong>open-vm-tools</strong> su Linux e BSD.</p>
<h5><strong>Macchine fisiche</strong></h5>
<p>&nbsp;</p>
<h5><strong>PC</strong></h5>
<p>&nbsp;</p>
<h5><strong>Prefazione</strong></h5>
<p>I produttori principali di PC hanno lavorato insieme a Microsoft per rendere la transizione alla nuova catena di fiducia il più trasparente possibile.<br />
Nella maggior parte dei casi l’aggiornamento del BIOS, svolto manualmente o mediante la funzionalità Enterprise di Intune per l’aggiornamento del firmware, è sufficiente per aggiornare le variabili EFI di default, senza bisogno di disabilitare il BitLocker.</p>
<h5><strong>Dell</strong></h5>
<p>I PC Dell rilasciati dopo il 1° Gennaio 2026 includono già la nuova CA nelle variabili EFI, per quelli precedenti è necessario verificare sul sito del produttore se la versione del BIOS che si sta utilizzando è sufficientemente aggiornata.<br />
Per effettuare questa verifica è possibile proseguire come segue:</p>
<ul>
<li>Navigare sul sito www.dell.com/support ed inserire il modello del proprio computer</li>
<li>Navigare nella sezione “Driver e download” e scegliere BIOS come categoria</li>
<li>Cliccare sulla versione del BIOS disponibile e selezionare &#8220;Leggi tutto&#8221; (Read More) sotto la voce Informazioni importanti (Important Information)</li>
<li>Cercare la dicitura esatta: &#8220;This BIOS contains the new 2023 Secure Boot Certificates&#8221;</li>
</ul>
<p>La presenza di questa frase conferma che i certificati sono integrati nell&#8217;aggiornamento.</p>
<h5><strong>HP</strong></h5>
<p>I PC HP rilasciati nel 2024 e successivi includono già la nuova CA nelle variabili EFI, per quelli precedenti, ma non ancora fuori ciclo vita (EOSL), è possibile aggiungerla mediante un aggiornamento del BIOS e per quelli non più supportati HP sta sviluppando un metodo di patching manuale per i sistemi operativi Windows client.<br />
Quando il PC HP è pronto per proseguire con l’aggiornamento delle variabili EFI live, mediante Windows Update, l’output del seguente comando include la stringa <strong>SBKPFV3</strong>:</p><pre class="urvanov-syntax-highlighter-plain-tag">(Get-CimInstance -ClassName Win32_ComputerSystemProduct).Version</pre><p>Se quella stringa non è presente, Windows non proverà ad eseguire l’aggiornamento delle variabili EFI in autonomia, però sarà comunque possibile forzarlo, a proprio rischio e pericolo, modificando la chiave di registro <strong>AvailableUpdates</strong>.<br />
HP ha annunciato che non rilascerà un aggiornamento per la revoca della CA 2011 mediante DBX e sconsiglia di effettuare questa operazione manualmente.</p>
<h5><strong>Lenovo</strong></h5>
<p>Lenovo non fornisce una data dopo la quale i PC rilasciati ospitano già la nuova CA nelle variabili EFI, però fornisce una tabella che in base al modello indica la versione minima del BIOS richiesta.<br />
La tabella è disponibile al seguente link: <a href="https://support.lenovo.com/us/en/solutions/HT518129" target="_blank" rel="noopener">https://support.lenovo.com/us/en/solutions/HT518129</a></p>
<h5><strong>SERVERS</strong></h5>
<p>&nbsp;</p>
<h5><strong>Prefazione</strong></h5>
<p>Analogamente a come avviene per i PC, mediante l’aggiornamento del BIOS è possibile aggiornare le variabili EFI di default dei servers della maggior parte dei produttori.<br />
Molti produttori consentono l’iniezione manuale o mediante API dei certificati nelle variabili EFI, questa procedura è consigliata se non è disponibile un aggiornamento del firmware ufficiale.<br />
Sui servers si raccomanda una maggiore cautela durante la revoca dei certificati, specialmente se non sono disponibili service pack recenti che includono gli aggiornamenti del firmware, poiché è più facile rompere la catena di fiducia rispetto che sui PC dove si trovano drivers più standard.</p>
<h5><strong>HPE</strong></h5>
<p>Per i server HPE, analogamente a come è avvenuto per gli altri produttori, sono stati rilasciati i service pack con l’aggiornamento del firmware per la transizione alla nuova catena di fiducia.<br />
Inoltre, è possibile iniettare i nuovi certificati mediante le API Redfish delle iLO, nel caso in cui non si possa procedere con l’aggiornamento del firmware si debba procedere massivamente.</p>
<h4><strong>Aggiornamento delle variabili live e della firma del boot loader</strong></h4>
<p>&nbsp;</p>
<h5><strong>Linux</strong></h5>
<p>&nbsp;</p>
<h5><strong>Aggiornamento delle variabili live</strong></h5>
<p>Le variabili live su Linux vengono gestite diversamente in base a se si tratta di una macchina fisica o virtuale e nell’ultimo caso il comportamento varia in base al hypervisor.<br />
Generalmente se non vengono modificate durante l’aggiornamento del firmware (o dell’hardware virtuale), ma le variabili di default risultano corrette, è possibile procedere dal BIOS al reset delle chiavi EFI, per far sì che esse vengano memorizzate in NVRAM sovrascrivendo le attuali variabili live.<br />
In alternativa, è possibile provare ad aggiornarle eseguendo i seguenti comandi:</p><pre class="urvanov-syntax-highlighter-plain-tag">apt-get install -y fwupd
fwupdmgr refresh
fwupdmgr get-updates
fwupdmgr update</pre><p>Come ultima spiaggia, se non sono presenti aggiornamenti firmware, è possibile iniettarle manualmente impostando il Secure Boot in modalità <strong>Setup Mode</strong> o <strong>Delete PK</strong> ed applicando a mano il file EFI Signature List (.esl).<br />
Prima di procedere è necessario installare il pacchetto <strong>efitools</strong>, su Debian eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">apt-get install -y efitools</pre><p>Per applicare a mano la patch di DB eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">efi-updatevar -a -f EFI_Signature_List_DB.esl db</pre><p>Analogamente, per applicare a mano la patch di DBX eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">efi-updatevar -a -f EFI_Signature_List_DBX.esl dbx</pre><p>Se viene mostrato un errore simile al seguente, significa che non si ha autorizzato dal BIOS la modifica delle variabili EFI:</p><pre class="urvanov-syntax-highlighter-plain-tag">Failed to update db: Operation not permitted</pre><p>&nbsp;</p>
<h5><strong>Aggiornamento della firma dello shim</strong></h5>
<p>Su Linux è necessario mantenere aggiornato il pacchetto <strong>shim-signed</strong> o <strong>shim-x64</strong> affinché la nuova CA venga aggiunta tra le autorità emittenti dello <strong>shim</strong>.<br />
In alcuni sistemi è possibile che nonostante il Secure Boot sia abilitato, il pacchetto sia mancante, in questi casi è necessario installarlo.</p>
<p>Su Debian eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">apt-get install -y shim-signed</pre><p>Su RHEL eseguire:</p><pre class="urvanov-syntax-highlighter-plain-tag">dnf install -y shim-x64</pre><p>Dal momento che il pacchetto viene installato sarà sufficiente installare gli aggiornamenti medianti package manager per mantenere la firma dello <strong>shim</strong> aggiornata.</p>
<h5><strong>Windows</strong></h5>
<p>&nbsp;</p>
<h5><strong>Windows mediante Intune</strong></h5>
<p>Microsoft mediante Intune mette a disposizione tre policies per rimediare al problema della scadenza dei certificati:</p>
<table style="height: 100%; border-style: solid; width: 100%; border-color: #000000;" border="1" width="100%">
<tbody>
<tr style="height: 23px;">
<td style="height: 23px; width: 277.283px; text-align: center;"><strong>Nome</strong></td>
<td style="height: 23px; width: 324.35px; text-align: center;"><strong>Funzionalità</strong></td>
<td style="height: 23px; width: 356.367px; text-align: center;"><strong>Caso d’uso</strong></td>
</tr>
<tr style="height: 95px;">
<td style="height: 95px; width: 277.283px;">Configure Microsoft Update Managed Opt-In</td>
<td style="height: 95px; width: 324.35px;">Delega a Microsoft la gestione dell’aggiornamento (necessita la telemetria attiva – vedi capitolo Auditing)</td>
<td style="height: 95px; width: 356.367px;">Dispositivi per i quali non si è sicuri della compatibilità delle nuove chiavi EFI</td>
</tr>
<tr style="height: 95px;">
<td style="height: 95px; width: 277.283px;">Configure High Confidence Opt-Out</td>
<td style="height: 95px; width: 324.35px;">Inibisce l’aggiornamento delle chiavi EFI mediante aggiornamento mensile di qualità sui dispositivi con alta confidenza (testati da Microsoft)</td>
<td style="height: 95px; width: 356.367px;">Dispositivi per i quali non si vuole procedere all’aggiornamento delle chiavi EFI</td>
</tr>
<tr style="height: 119px;">
<td style="height: 119px; width: 277.283px;">Enable SecureBoot Certificate Updates</td>
<td style="height: 119px; width: 324.35px;">Richiede a Microsoft di installare la patch al prossimo aggiornamento mediante Window Update</td>
<td style="height: 119px; width: 356.367px;">Dispositivi su cui si ha testato le nuove chiavi EFI e si desidera procedere rapidamente alla loro distribuzione</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Se si volesse procedere con l’aggiornamento delle variabili EFI mediante rollout automatico con Windows Update sarebbe importante assicurarsi di non aver configurato la policy <strong>Configure High Confidence Opt-Out</strong> o di averla configurata disabilitata.<br />
Tutte le tre policies sono raggruppate nella stessa categoria, per configurarle recarsi sul portale Microsoft Intune, navigare su <strong>Devices</strong>, selezionare <strong>Windows</strong> e nella sezione <strong>Configuration</strong>, dopo aver cliccato su <strong>Create</strong>, selezionare <strong>New Policy</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_08.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123382 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_08-1024x378.png" alt="" width="1024" height="378" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_08-980x361.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_08-480x177.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<p>Nel menù laterale selezionare la piattaforma <strong>Windows 10 and later</strong> ed il tipo <strong>Settings catalog</strong>, poi cliccare su <strong>Create</strong> per proseguire:</p>
<p>&nbsp;</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_09.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123383 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_09.png" alt="" width="589" height="875" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_09.png 589w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_09-480x713.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 589px, 100vw" /></a><br />
Assegnare un nome significativo alla policy e proseguire cliccando su <strong>Next</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_10.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123384 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_10.png" alt="" width="847" height="875" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_10.png 847w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_10-480x496.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 847px, 100vw" /></a><br />
Cliccare su <strong>Add settings</strong>, cercare <strong>Secure Boot</strong> e selezionare le policy desiderate.<br />
Policy per il rollout automatico gestito da Microsoft (Configure <strong>Microsoft Update Managed Opt-In</strong>):</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_11.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123385 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_11-1024x533.png" alt="" width="1024" height="533" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_11-980x510.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_11-480x250.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Policy per il rollout controllato dagli amministratori IT (<strong>Enable SecureBoot Certificate Updates</strong>):</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_12.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123386 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_12-1024x530.png" alt="" width="1024" height="530" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_12-980x507.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_12-480x249.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Proseguire cliccando su <strong>Next</strong>, opzionalmente assegnare uno <strong>Scope tag</strong> e proseguire nuovamente cliccando su <strong>Next</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_13.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123387 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_13.png" alt="" width="875" height="873" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_13.png 875w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_13-480x479.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 875px, 100vw" /></a><br />
Nella schermata successiva è possibile assegnare la policy ad uno o più gruppi ed eventualmente prevedere delle esclusioni:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_14.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123388 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_14-1024x766.png" alt="" width="1024" height="766" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_14-1024x766.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_14-980x733.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_14-480x359.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Dopo aver cliccato su <strong>Add groups</strong> è possibile selezionare il gruppo desiderato:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_15.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123389 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_15-1024x804.png" alt="" width="1024" height="804" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_15-1024x804.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_15-980x769.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_15-480x377.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Proseguire cliccando su <strong>Next</strong> ed infine confermare cliccando su <strong>Create</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_16.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123390 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_16.png" alt="" width="836" height="876" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_16.png 836w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_16-480x503.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 836px, 100vw" /></a><br />
Aprendo la policy, cliccando su <strong>View report</strong> è possibile visualizzare il report per verificare su quali dispositivi è stata applicata:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_17.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123392 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_17.png" alt="" width="605" height="347" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_17.png 605w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_17-480x275.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 605px, 100vw" /></a><br />
Quando la policy viene applicata con successo viene mostrata la dicitura <strong>Success</strong> in prossimità del dispositivo che l’ha applicata:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_18.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123393 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_18-1024x327.png" alt="" width="1024" height="327" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_18-980x313.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_18-480x153.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Invece, in caso di errore, viene mostrata la dicitura <strong>Error</strong> in prossimità del dispositivo su cui la policy ha fallito:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_19.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123394 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_19-1024x282.png" alt="" width="1024" height="282" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_19-980x270.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_19-480x132.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Cliccando il nome del dispositivo viene mostrato il numero di errore:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_20.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123395 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_20.png" alt="" width="754" height="107" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_20.png 754w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_20-480x68.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 754px, 100vw" /></a><br />
Il codice 65000 indica un errore del CSP (<strong>Configuration Service Provider</strong>).<br />
In ambienti virtualizzati come Proxmox, questo errore potrebbe venir causato dal firmware (OVMF) che blocca la scrittura delle variabili da parte del sistema operativo guest, poiché la gestione è delegata all&#8217;hypervisor.<br />
Dopo qualche ora che la policy viene applicata ed il dispositivo viene riavviato, lo stato del certificato per il dispositivo sul report del <strong>Secure Boot</strong> cambia da <strong>Not up to date</strong> a <strong>Up to date</strong>.<br />
Prima (<strong>Not up to date</strong>):</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_21.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123396 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_21-1024x333.png" alt="" width="1024" height="333" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_21-980x319.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_21-480x156.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Dopo (<strong>Up to date</strong>):</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_22.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123397 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_22-1024x316.png" alt="" width="1024" height="316" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_22-980x302.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_22-480x148.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></p>
<h5><strong>Windows mediante GPO</strong></h5>
<p>In assenza di Intune, la distribuzione dell’aggiornamento può avvenire mediante GPO.<br />
Queste policy operano secondo il principio del <strong>Desired State</strong>: il valore nel registro viene imposto in modo persistente (Registry Tattooing) e non viene rimosso automaticamente dal sistema operativo nemmeno a operazione conclusa.<br />
Inoltre, su Intune le policies sono state tutte raggruppate in un’unica categoria, invece le GPO richiedono che venga abilitato l’aggiornamento degli <strong>altri prodotti Microsoft</strong> mediante una policy aggiuntiva (Windows Update for Business), che agisce sull’agente di Windows Update.<br />
Infine, se si utilizza il WSUS (deprecato) è necessario assicurarsi che le classificazioni <strong>Updates</strong> e <strong>Security Updates</strong> siano sincronizzate e che non ci siano patch da approvare.</p>
<p>Di seguito una tabella riassuntiva delle policies:</p>
<table style="height: 100%; border-style: solid; width: 100%; border-color: #000000;" border="1" width="100%">
<tbody>
<tr>
<td style="text-align: center;" width="271"><strong>Nome</strong></td>
<td style="text-align: center;" width="131"><strong>Categoria</strong></td>
<td style="text-align: center;" width="336"><strong>Descrizione</strong></td>
</tr>
<tr>
<td width="271">Enable Secure Boot Certificate Deployment</td>
<td width="131">Secure Boot</td>
<td width="336">Abilita l’aggiornamento delle variabili EFI per il Secure Boot mediante Windows Update (rilascio immediato)</td>
</tr>
<tr>
<td width="271">Automatic Certificate Deployment via Updates</td>
<td width="131">Secure Boot</td>
<td width="336">Abilita l’aggiornamento automatico (abilitato di default), quando Microsoft ritiene che l’hardware lo supporti, mediante patch mensile (rilascio graduale)</td>
</tr>
<tr>
<td width="271">Certificate Deployment via Controlled Feature Rollout</td>
<td width="131">Secure Boot</td>
<td width="336">Abilita l’aggiornamento automatico “intelligente”, mediante l’analisi dei dati diagnostici (rilascio controllato)</td>
</tr>
<tr>
<td width="271">Configure Automatic Updates</td>
<td width="131">Windows Update</td>
<td width="336">Configura gli aggiornamenti automatici e mediante l’opzione “Install updates for other Microsoft products” abilita l’aggiornamento delle variabili EFI, oltre che di altri prodotti, come SQL Server, IIS…</td>
</tr>
<tr>
<td width="271">Allow Diagnostic Data</td>
<td width="131">Data Collection</td>
<td width="336">Abilita i dati diagnostici, per utilizzare il rilascio controllato è necessaria almeno l’opzione “Send required diagnostic data”</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Di seguito dove trovare le categorie interessate:</p>
<p>&nbsp;</p>
<table style="height: 100%; border-style: solid; width: 100%; border-color: #000000;" border="1" width="100%">
<tbody>
<tr>
<td style="text-align: center; width: 123.267px;"><strong>Nome</strong></td>
<td style="text-align: center; width: 594.733px;"><strong>Percorso</strong></td>
</tr>
<tr>
<td style="width: 123.267px;">Secure Boot</td>
<td style="width: 594.733px;">Computer Configuration &gt; Administrative Templates &gt; Windows Components &gt; Secure Boot</td>
</tr>
<tr>
<td style="width: 123.267px;">Data Collection</td>
<td style="width: 594.733px;">Computer Configuration &gt; Administrative Templates &gt; Windows Components &gt; Data Collection and Preview Builds</td>
</tr>
<tr>
<td style="width: 123.267px;">Windows Update</td>
<td style="width: 594.733px;">Computer Configuration &gt; Administrative Templates &gt; Windows Components &gt; Windows Update &gt; Manage end user experience</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Aprire lo snap-in <strong>Group Policy Management</strong>, selezionare <strong>Group Policy Objects</strong>, effettuare click destro e cliccare su <strong>New</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_23.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123398 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_23.png" alt="" width="824" height="1014" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_23.png 824w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_23-480x591.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 824px, 100vw" /></a><br />
Assegnare un nome alla policy e confermare cliccando su <strong>OK</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_24.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123399 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_24.png" alt="" width="483" height="230" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_24.png 483w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_24-480x229.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 483px, 100vw" /></a><br />
Selezionare la nuova policy, effettuare click destro e cliccare su <strong>Edit</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_25.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123400 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_25.png" alt="" width="589" height="893" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_25.png 589w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_25-480x728.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 589px, 100vw" /></a></p>
<p>Navigare ai rispettivi percorsi indicati nella tabella precedente per configurare le policies.<br />
Ad esempio, se si volesse configurare la policy per il rilascio immediato nella categoria Secure Boot bisognerebbe configurare come segue:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_26.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123401 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_26-1024x428.png" alt="" width="1024" height="428" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_26-980x409.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_26-480x201.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Inoltre, sarebbe necessario abilitare l’opzione <strong>Install updates for other Microsoft products</strong> nella policy <strong>Configure Automatic Updates</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_27.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123402 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_27.png" alt="" width="856" height="794" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_27.png 856w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_27-480x445.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 856px, 100vw" /></a><br />
È probabile che l’organizzazione abbia già configurato la policy nell’immagine precedente per gli aggiornamenti automatici, in questo caso è necessario abilitare l’opzione indicata in quella policy.<br />
Se invece si utilizzasse la policy <strong>Certificate Deployment via Controlled Feature Rollout</strong>, per il rilascio controllato, essa richiederebbe che venga abilitata la telemetria <strong>required</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_28.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123403 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_28.png" alt="" width="687" height="638" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_28.png 687w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_28-480x446.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 687px, 100vw" /></a><br />
Dopo aver configurato le opzioni desiderate, selezionare la OU alla quale la si vuole assegnare, effettuare click destro e cliccare su <strong>Link an Existing GPO…</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_29.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123404 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_29.png" alt="" width="888" height="753" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_29.png 888w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_29-480x407.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 888px, 100vw" /></a><br />
Selezionare la policy e confermare cliccando su <strong>OK</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_30.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123405 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_30.png" alt="" width="448" height="413" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_30.png 448w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_30-300x277.png 300w" sizes="(max-width: 448px) 100vw, 448px" /></a><br />
La rimozione della GPO non comporta la pulizia automatica del registro.</p>
<h5><strong>Windows mediante chiavi di registro</strong></h5>
<p>Se non sono disponibili strumenti di gestione remota come Intune e le GPO, è possibile intervenire direttamente sul registro.<br />
Tutti i valori delle chiavi presenti delle seguenti tabelle riassuntive sono di tipo <strong>REG_DWORD</strong>.<br />
Tabella riassuntiva per la chiave <strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot</strong>:</p>
<p>&nbsp;</p>
<table style="height: 100%; border-style: solid; width: 100%; border-color: #000000;" border="1" width="100%">
<tbody>
<tr>
<td style="text-align: center; width: 198.85px;"><strong>Nome</strong></td>
<td style="text-align: center; width: 550.15px;"><strong>Descrizione</strong></td>
</tr>
<tr>
<td style="width: 198.85px;">AvailableUpdates</td>
<td style="width: 550.15px;">Bitmask che abilita l’operazione di aggiornamento dei vari componenti coinvolti durante il Secure Boot</td>
</tr>
<tr>
<td style="width: 198.85px;">HighConfidenceOptOut</td>
<td style="width: 550.15px;">Se impostata a “1” viene bloccato il rilascio delle patch anche se il dispositivo viene considerato affidabile</td>
</tr>
<tr>
<td style="width: 198.85px;">MicrosoftUpdateManagedOptIn</td>
<td style="width: 550.15px;">Se impostata a “1” abilita il rilascio controllato (necessita la telemetria “required”)</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Per il rilascio immediato delle patch per il Secure Boot si consiglia di impostare il valore <strong>0x5944</strong> della chiave <strong>AvailableUpdates</strong>.</p>
<h3><strong>RISOLUZIONE DEI PROBLEMI</strong></h3>
<p>&nbsp;</p>
<h4><strong>Analisi del registro</strong></h4>
<p>Quando viene configurata la policy di Intune per l’aggiornamento automatico, la chiave <strong>AvailableUpdates</strong> viene impostata a 0x5944, nelle fasi successive la chiave viene decrementata dei valori bitmask delle rispettive fasi, ad esempio il valore 0x4400 significa che gli aggiornamenti di DB, KEK e della firma del boot loader sono conclusi con successo e che è necessario procedere alla modifica di DBX (revoca).<br />
Il valore della chiave <strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing</strong> chiamato <strong>UEFICA2023Status</strong> descrive lo stato dell’aggiornamento mediante delle stringhe (più user friendly delle bitmask):</p>
<ul>
<li>NotStarted</li>
<li>InProgress</li>
<li>Updated</li>
</ul>
<p>Sempre la stessa chiave, nella fase <strong>InProgress</strong>, memorizza i valori chiamati <strong>UEFICA2023Error</strong> e <strong>UEFICA2023ErrorEvent</strong> che riportano rispettivamente il codice ed il numero dell’evento del primo errore che è stato riscontrato durante l’aggiornamento della CA 2023 (se non si è concluso con successo o se è richiesto un riavvio).<br />
Inoltre, essa memorizza anche i valori chiamati <strong>BootMgrLastUpdateError</strong> e <strong>BootMgrLastUpdateErrorReason</strong> che riportano il codice e la ragione del primo errore che è stato riscontrato durante l’aggiornamento the Boot Manager (boot loader).<br />
Durante la fase <strong>InProgress</strong> potrebbe essere richiesto un riavvio manuale, dato che l’aggiornamento delle variabili EFI non scatena il riavvio automatico del dispositivo.<br />
Situazione del registro prima dell’aggiornamento:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_31.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123406 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_31-1024x524.png" alt="" width="1024" height="524" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_31-1024x524.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_31-980x502.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_31-480x246.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
<a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_32.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123408 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_32-1024x524.png" alt="" width="1024" height="524" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_32-1024x524.png 1024w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_32-980x501.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_32-480x246.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Situazione del registro durante l’aggiornamento:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_33.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123409 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_33-1024x520.png" alt="" width="1024" height="520" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_33-980x498.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_33-480x244.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Situazione del registro dopo l’aggiornamento:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_34.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123410 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_34-1024x521.png" alt="" width="1024" height="521" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_34-980x499.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_34-480x244.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
<a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_35.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123411 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_35-1024x523.png" alt="" width="1024" height="523" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_35-980x501.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_35-480x245.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
In questo caso il PC non ha ancora revocato la CA 2011.</p>
<h4><strong>Analisi dell&#8217;Event Viewer</strong></h4>
<p>Mediante l’Event Viewer è possibile consultare i logs di sistema per capire in che fase dell’aggiornamento si trova il PC ed analizzare le cause di eventuali errori.<br />
Aprire l’Event Viewer, navigare su <strong>Windows Logs &gt; Service</strong> e selezionare <strong>Filter Current Log…</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_36.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123412 size-large" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_36-1024x540.png" alt="" width="1024" height="540" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_36-980x517.png 980w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_36-480x253.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a><br />
Filtrare mediante <strong>Event Source</strong> impostandola su <strong>TPM-WMI</strong>:</p>
<p><a href="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_37.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-1123414 size-full" src="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_37.png" alt="" width="668" height="686" srcset="https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_37.png 668w, https://www.raffaelechiatto.com/wp-content/uploads/2026/04/update-efi-secureboot_37-480x493.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 668px, 100vw" /></a><br />
Di seguito una tabella riassuntiva degli eventi:</p>
<p>&nbsp;</p>
<table style="height: 100%; border-color: #000000; width: 100%; border-style: solid;" border="1" width="100%">
<tbody>
<tr>
<td style="width: 152.433px; text-align: center;"><strong>Event ID</strong></td>
<td style="width: 369.383px; text-align: center;"><strong>Descrizione</strong></td>
<td style="width: 284.183px; text-align: center;"><strong>Azione</strong></td>
</tr>
<tr>
<td style="width: 152.433px;">1808</td>
<td style="width: 369.383px;">Aggiornamento completato: variabili EFI e boot loader aggiornati</td>
<td style="width: 284.183px;">Nessuna</td>
</tr>
<tr>
<td style="width: 152.433px;">1801</td>
<td style="width: 369.383px;">Le chiavi non sono ancora applicate. Indica lo stato di Confidence e i Buckets di rollout</td>
<td style="width: 284.183px;">Attendere</td>
</tr>
<tr>
<td style="width: 152.433px;">1036 / 1045</td>
<td style="width: 369.383px;">DB aggiornato correttamente con la CA 2023</td>
<td style="width: 284.183px;">Nessuna</td>
</tr>
<tr>
<td style="width: 152.433px;">1037</td>
<td style="width: 369.383px;">DBX aggiornato correttamente con la CA 2011 (i vecchi supporti di boot, tipo le ISO, non funzioneranno più)</td>
<td style="width: 284.183px;">Aggiornare i media di Recovery e le ISO/templates sul virtualizzatore</td>
</tr>
<tr>
<td style="width: 152.433px;">1043</td>
<td style="width: 369.383px;">KEK aggiornata correttamente con la CA 2023</td>
<td style="width: 284.183px;">Nessuna</td>
</tr>
<tr>
<td style="width: 152.433px;">1795 / 1796</td>
<td style="width: 369.383px;">Errore del firmware o errore generico di scrittura in NVRAM</td>
<td style="width: 284.183px;">Riavviare ed eventualmente verificare le patch del firmware</td>
</tr>
<tr>
<td style="width: 152.433px;">1032</td>
<td style="width: 369.383px;">L&#8217;aggiornamento è sospeso perché manderebbe BitLocker in modalità Recovery</td>
<td style="width: 284.183px;">Sospendere temporaneamente il BitLocker per 2 reboot e riavviare</td>
</tr>
<tr>
<td style="width: 152.433px;">1033</td>
<td style="width: 369.383px;">Rilevato un componente del boot non compatibile con la revoca mediante DBX</td>
<td style="width: 284.183px;">Aggiornare il firmware e/o i drivers e riavviare</td>
</tr>
<tr>
<td style="width: 152.433px;">1797 / 1798</td>
<td style="width: 369.383px;">Fallito il controllo preliminare prima della revoca mediante DBX</td>
<td style="width: 284.183px;">Verificare se la CA 2023 sia presente in DB e che il boot loader sia stato firmato da essa</td>
</tr>
</tbody>
</table>
]]></content:encoded>
					
					<wfw:commentRss>https://www.raffaelechiatto.com/aggiornamento-delle-variabili-efi-e-dei-componenti-del-secure-boot-con-la-microsoft-uefi-ca-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>