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

<channel>
	<title>terminale Archivi - Cesare Bordi | Innovation Manager &amp; Back-end Developer</title>
	<atom:link href="https://www.cesarebordi.it/tag/terminale/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cesarebordi.it/tag/terminale/</link>
	<description>Innovare con soluzioni software efficaci e gioco di squadra</description>
	<lastBuildDate>Mon, 23 Oct 2023 08:27:54 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.2</generator>

<image>
	<url>https://www.cesarebordi.it/wp-content/uploads/2016/02/CB-logo-88x88.png</url>
	<title>terminale Archivi - Cesare Bordi | Innovation Manager &amp; Back-end Developer</title>
	<link>https://www.cesarebordi.it/tag/terminale/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guida ai comandi Linux più utilizzati da Terminale</title>
		<link>https://www.cesarebordi.it/linux-shell-comandi-piu-utilizzati/</link>
					<comments>https://www.cesarebordi.it/linux-shell-comandi-piu-utilizzati/#respond</comments>
		
		<dc:creator><![CDATA[cesarebordi]]></dc:creator>
		<pubDate>Fri, 05 Jun 2020 09:46:00 +0000</pubDate>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[attività sistemistica]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mkdir]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[terminale]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[web developer]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[zip]]></category>
		<guid isPermaLink="false">http://www.cesarebordi.it/?p=287</guid>

					<description><![CDATA[<p>Una utile guida ai comandi linux da terminale più utilizzati dai web developer che devono svolgere attività sistemistiche o di controllo su server linux utilizzando la console. Guida...</p>
<p>L'articolo <a href="https://www.cesarebordi.it/linux-shell-comandi-piu-utilizzati/">Guida ai comandi Linux più utilizzati da Terminale</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Una utile<strong> guida ai comandi linux da terminale </strong>più utilizzati dai <strong>web developer</strong> che devono svolgere <strong>attività sistemistiche</strong> o di controllo su <strong>server linux</strong> utilizzando la <strong>console</strong>.</p>



<span id="more-287"></span>



<h2 class="wp-block-heading">Guida comandi linux</h2>



<figure class="wp-block-table is-style-regular"><table><thead><tr><th class="has-text-align-left" data-align="left">COMANDO</th><th>UTILIZZO</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">INFO SUL SISTEMA</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">uname -m</td><td>mostra l&#8217;architettura del sistema</td></tr><tr><td class="has-text-align-left" data-align="left">uname -r</td><td>mostra la versione del kernel</td></tr><tr><td class="has-text-align-left" data-align="left">cat /proc/cpuinfo</td><td>mostra info sulla CPU</td></tr><tr><td class="has-text-align-left" data-align="left">cat /proc/meminfo</td><td>mostra info sulla memoria ram</td></tr><tr><td class="has-text-align-left" data-align="left">cat /proc/cpuinfo</td><td>mostra info sulla CPU</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">ARRESTO / RIAVVIO</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">shutdown <strong>-h</strong> now</td><td>arresto istantaneo del sistema</td></tr><tr><td class="has-text-align-left" data-align="left">shutdown <strong>-r</strong> now</td><td>riavvio istantaneo del sistema</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">OPERAZIONI DI BASE SU FILE / CARTELLE</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">cd /percorso</td><td>si sposta nella cartella indicata</td></tr><tr><td class="has-text-align-left" data-align="left">cd ..</td><td>risalire di un livello</td></tr><tr><td class="has-text-align-left" data-align="left">cd ../..</td><td>risalire di due livelli</td></tr><tr><td class="has-text-align-left" data-align="left">cp file1 file2</td><td>copiare un file</td></tr><tr><td class="has-text-align-left" data-align="left">cp -a dir1 dir2</td><td>copiare una directory</td></tr><tr><td class="has-text-align-left" data-align="left">rsync -av /path/sorgente/ /path/destinazione/</td><td>copia una directory e tutto il suo contenuto mantenendo i permessi e la proprietà dei file</td></tr><tr><td class="has-text-align-left" data-align="left">ln -s file1 lnk1</td><td>creare un link simbolico al file(o directory) &#8216;file1&#8217; chiamato lnk1</td></tr><tr><td class="has-text-align-left" data-align="left">ln file1 lnk1</td><td>creare un link fisico al file(o directory) &#8216;file1&#8217; chiamato lnk1</td></tr><tr><td class="has-text-align-left" data-align="left">ls -lh</td><td>visualizzare contenuto della directory</td></tr><tr><td class="has-text-align-left" data-align="left">ls -Flh (reverse: -Flhr)</td><td>distingue file e directory</td></tr><tr><td class="has-text-align-left" data-align="left">ls -Slh (reverse: -Slhr)</td><td>ordina per dimensione</td></tr><tr><td class="has-text-align-left" data-align="left">ls -a</td><td>visualizza file nascosti</td></tr><tr><td class="has-text-align-left" data-align="left">tree /percorso</td><td>visualizza file e directory in una rappresentazione ad albero</td></tr><tr><td class="has-text-align-left" data-align="left">mkdir dir1</td><td>creare la directory &#8216;dir1&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">mkdir dir1 dir2</td><td>creare due directory contemporaneamente</td></tr><tr><td class="has-text-align-left" data-align="left">mkdir -p /dir1/dir2</td><td>creare un albero di directory</td></tr><tr><td class="has-text-align-left" data-align="left">mv dir1 new_dir</td><td>rinominare/muovere una directory o file</td></tr><tr><td class="has-text-align-left" data-align="left">pwd</td><td>visualizzare il path della directory di lavoro</td></tr><tr><td class="has-text-align-left" data-align="left">rm -f file1</td><td>eliminare il file &#8216;file1&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">rm -rf dir1</td><td>eliminare ricorsivamente la directory &#8216;dir1&#8217; e sul contenuto</td></tr><tr><td class="has-text-align-left" data-align="left">rm -rf dir1 dir2</td><td>eliminare ricorsivamente due directory ed il loro contenuto con un solo comando</td></tr><tr><td class="has-text-align-left" data-align="left">rmdir dir1</td><td>eliminare la directory &#8216;dir1&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">find /dir1 -type f -name &#8220;*.ext&#8221; -delete</td><td>elimina tutti i file con una certa estensione cercando all&#8217;interno di una cartella e relative sottocartele.</td></tr><tr><td class="has-text-align-left" data-align="left">touch -t 1612011030 file1</td><td>modificare il timestamp di un file o directory &#8211; (YYMMDDhhmm)</td></tr><tr><td class="has-text-align-left" data-align="left">touch file1</td><td>utile pre creare un file vuoto</td></tr><tr><td class="has-text-align-left" data-align="left">touch -c file1</td><td>-c evita di creare nuovi file.</td></tr><tr><td class="has-text-align-left" data-align="left">find /percorso/ -name &#8220;file.ext&#8221; -delete</td><td>Cerca ed elimina tutti i file &#8220;file.ext&#8221; dal percorso (anche nelle sottocartelle)</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">DIMENSIONI FILE / CARTELLE</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">df -h</td><td>visualizzare l&#8217;elenco delle partizioni montate</td></tr><tr><td class="has-text-align-left" data-align="left">du -sh dir1</td><td>conoscere lo spazio su disco occupato dalla directory &#8216;dir1&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">du -skh /percorso/* &#8211;time | sort -h</td><td>visualizzare la dimensione dei file e delle directory ordinanti per dimensione</td></tr><tr><td class="has-text-align-left" data-align="left">ls -l | wc -l</td><td>conta gli elementi presenti nella cartella in cui ci si trova</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">RINOMINARE FILE</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">rename -n -v &#8216;s/^/PREFISSO/&#8217; *</td><td>Aggiunge un prefisso davanti al nome di i file contenuti in una cartella (NOTA:le opzioni -n -v eseguono una simulazione, rimuoverle per rendere il comando effettivo)</td></tr><tr><td class="has-text-align-left" data-align="left">rename -n -v &#8216;s/^(.{2})//&#8217; *</td><td>Rimuove i primi due caratteri dal nome di tutti i file contenuti in una cartella (NOTA:le opzioni -n -v eseguono una simulazione, rimuoverle per rendere il comando effettivo)</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">COMPRIMERE FILE</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">zip archivio.zip file1 file2 file3</td><td>comprime file specifici nell&#8217;archivio &#8216;archivio.zip&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">zip -r archivio.zip dir1</td><td>comprime la directory &#8216;dir1&#8217; nell&#8217;archivio &#8216;archivio.zip&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">zip -r9 archivio.zip dir1</td><td>comprime la directory &#8216;dir1&#8217; nell&#8217;archivio &#8216;archivio.zip&#8217; utilizzando la compressione massima.</td></tr><tr><td class="has-text-align-left" data-align="left">unzip archivio.zip</td><td>decomprime l&#8217;archivio &#8216;archivio.zip&#8217; nella posizione corrente</td></tr><tr><td class="has-text-align-left" data-align="left" colspan="2"><strong><mark style="background-color:#afcb08" class="has-inline-color">TRASFERIMENTO FILE / DOWNLOAD / WGET</mark></strong></td></tr><tr><td class="has-text-align-left" data-align="left">wget http://www.dominio.ext/file.ext</td><td>scarica &#8216;file.ext&#8217; nella posizione corrente</td></tr><tr><td class="has-text-align-left" data-align="left">wget http://www.dominio.ext/file.ext -O nuovoNome.ext</td><td>scarica &#8216;file.ext&#8217; rinominandolo in &#8216;nuovoNome.ext&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">wget http://www.dominio.ext/file.ext</td><td>scarica in background &#8216;file.ext&#8217; nella posizione corrente</td></tr><tr><td class="has-text-align-left" data-align="left">wget -i listaFile.txt</td><td>Scarica i file contenuti nel file &#8216;listaFile.txt&#8217;</td></tr><tr><td class="has-text-align-left" data-align="left">wget &#8211;limit-rate=500k http://www.dominio.ext/file.ext</td><td>Scarica &#8216;file.ext&#8217; limitando la velocità a 500 Kb</td></tr><tr><td class="has-text-align-left" data-align="left">wget -r &#8211;ftp-user=Username &#8211;ftp-password=Password ftp://ftp.dominio.ext/&#8230;</td><td>Scarica ricorsivamente tutto il contenuto a partire dalla posizione FTP indicata.</td></tr><tr><td class="has-text-align-left" data-align="left">scp -r -P 22 user@host:/percorso/sorgente/remota/ /percorso/destinazione/locale/</td><td><strong>Secure Copy</strong> (scp) copia ricorsivamente il contenuto da un server remoto nella cartella locale (o altro server emoto).</td></tr></tbody></table></figure>
<p>L'articolo <a href="https://www.cesarebordi.it/linux-shell-comandi-piu-utilizzati/">Guida ai comandi Linux più utilizzati da Terminale</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.cesarebordi.it/linux-shell-comandi-piu-utilizzati/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Screen: terminale permanente con un comando linux</title>
		<link>https://www.cesarebordi.it/screen-terminale-permanente-comando-linux/</link>
					<comments>https://www.cesarebordi.it/screen-terminale-permanente-comando-linux/#respond</comments>
		
		<dc:creator><![CDATA[cesarebordi]]></dc:creator>
		<pubDate>Thu, 10 Aug 2017 15:15:40 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tips & tricks]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[terminale]]></category>
		<guid isPermaLink="false">http://www.cesarebordi.it/?p=445</guid>

					<description><![CDATA[<p>Vediamo un po&#8217; come in linux possiamo istanziare un terminale permanente mediante screen per mantenere in esecuzione script dalla lunga esecuzione. Problema: utilizzando il terminale di linux dovete...</p>
<p>L'articolo <a href="https://www.cesarebordi.it/screen-terminale-permanente-comando-linux/">Screen: terminale permanente con un comando linux</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vediamo un po&#8217; come in linux possiamo istanziare un <strong>terminale permanente</strong> mediante <strong>screen</strong> per mantenere in esecuzione script dalla lunga esecuzione.</p>
<p><span style="text-decoration: underline;">Problema</span>: utilizzando il terminale di linux dovete lanciare un comando o uno script che richiederà molto tempo, ma non potete lasciar aperto il terminale o la sessione di ssh per tutte le ore o i giorni che impiegherà&#8230;</p>
<p>Soluzione: ci viene in aiuto il comando <em><strong>screen</strong></em>, vero e proprio &#8220;moltiplicatore di terminali&#8221; con il quale possiamo aprire una nuova sessione &#8220;virtuale&#8221; che  rimarrà aperta anche quando chiuderemo la sessione corrente.</p>
<p>Eseguendo infatti screen seguito dal comando che si vuole lanciare, nel nostro caso direttamente la bash,</p>
<pre class="brush: bash; title: ; notranslate">screen bash</pre>
<p>istanzieremo la bash nel nuovo terminale virtuale dal quale potremo lanciare il nostro comando dalla lunga esecuzione.</p>
<p>All&#8217;interno della sessione di screen potremo compiere varie operazioni:</p>
<ul>
<li><strong>premendo <span style="text-decoration: underline;">ctrl+a+c</span></strong> creeremo un nuovo terminale.</li>
<li><strong>premendo <span style="text-decoration: underline;">ctrl+a+n</span></strong> passeremo al terminale successivo.</li>
<li><strong>premendo <span style="text-decoration: underline;">ctrl+a+p</span></strong> passeremo al terminale precedente.</li>
<li><strong>premendo <span style="text-decoration: underline;">ctrl+a+d</span></strong> torniamo alla nostra sessione, mantenendo in esecuzione i comandi pendenti eseguiti in quella di screen.</li>
</ul>
<p>Ricollegandoci in un secondo momento potremo usare il comando seguente per riaprire una precedente sessione:</p>
<pre class="brush: bash; title: ; notranslate">screen -r 1234</pre>
<p>Dove ovviamente 1234 è il SID della sessione che desideriamo riaprire.</p>
<p>Digitando &#8220;screen -r&#8221;, nel caso ci siano più sessioni attive, viene mostrato l&#8217;elenco delle sessioni e dei relativi PID.</p>
<p>Per killare una sessione di screen:</p>
<pre class="brush: bash; title: ; notranslate">screen -X -S 1234 quit</pre>
<p>L'articolo <a href="https://www.cesarebordi.it/screen-terminale-permanente-comando-linux/">Screen: terminale permanente con un comando linux</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.cesarebordi.it/screen-terminale-permanente-comando-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modificare file hosts su Mac OSX</title>
		<link>https://www.cesarebordi.it/modificare-file-hosts-mac-osx/</link>
					<comments>https://www.cesarebordi.it/modificare-file-hosts-mac-osx/#respond</comments>
		
		<dc:creator><![CDATA[cesarebordi]]></dc:creator>
		<pubDate>Tue, 18 Jul 2017 13:52:27 +0000</pubDate>
				<category><![CDATA[Apple OSX / iOS]]></category>
		<category><![CDATA[Articoli]]></category>
		<category><![CDATA[Categorie]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tips & tricks]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[terminale]]></category>
		<guid isPermaLink="false">http://www.cesarebordi.it/?p=437</guid>

					<description><![CDATA[<p>Ecco una breve guida per modificare il file hosts su Mac OSX così da cambiare il puntamento dei domini su IP diversi da quelli realmente risolti dai DNS pubblici....</p>
<p>L'articolo <a href="https://www.cesarebordi.it/modificare-file-hosts-mac-osx/">Modificare file hosts su Mac OSX</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ecco una breve guida per modificare il file hosts su Mac OSX così da cambiare il puntamento dei domini su IP diversi da quelli realmente risolti dai DNS pubblici.</p>
<p>Aprire il terminale e digitare il seguente comando per aprire l&#8217;editor testuale Nano con i privilegi di amministratore:</p>
<pre class="brush: bash; title: ; notranslate">
sudo nano /etc/hosts
</pre>
<p>Aggiungere in una riga qualsiasi la riga che associa il nuovo IP al dominio desiderato. Es:</p>
<pre class="brush: bash; title: ; notranslate">
80.70.60.120 nomedominio.ext
</pre>
<p>Premere le combinazioni di tasti <b>CTRL+O</b> e poi INVIO per salvare e <strong>CTRL+X</strong> per chiudere Nano.</p>
<p>In alternativa si possono usare utility free per switchare rapidamente diversi file hosts come <a href="https://oldj.github.io/SwitchHosts/" target="_blank" rel="noopener noreferrer">SwitchHost!</a> o <a href="http://clockwise.ee/" target="_blank" rel="noopener noreferrer">Gas Mask</a>.</p>
<p>L'articolo <a href="https://www.cesarebordi.it/modificare-file-hosts-mac-osx/">Modificare file hosts su Mac OSX</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.cesarebordi.it/modificare-file-hosts-mac-osx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sicurezza: abilitare HTTPS in Apache2 su Ubuntu server</title>
		<link>https://www.cesarebordi.it/sicurezza-abilitare-https-in-apache2-su-ubuntu-server/</link>
					<comments>https://www.cesarebordi.it/sicurezza-abilitare-https-in-apache2-su-ubuntu-server/#respond</comments>
		
		<dc:creator><![CDATA[cesarebordi]]></dc:creator>
		<pubDate>Thu, 04 Aug 2016 14:24:27 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[sistemista]]></category>
		<category><![CDATA[terminale]]></category>
		<category><![CDATA[web developer]]></category>
		<category><![CDATA[webserver]]></category>
		<guid isPermaLink="false">http://www.cesarebordi.it/?p=370</guid>

					<description><![CDATA[<p>Scenario: vogliamo rendere uno scambio dati sicure, magari per rafforzare il sistema di autenticazione di un sito web o lo scambio dati fra una webApp, ma anche una...</p>
<p>L'articolo <a href="https://www.cesarebordi.it/sicurezza-abilitare-https-in-apache2-su-ubuntu-server/">Sicurezza: abilitare HTTPS in Apache2 su Ubuntu server</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="text-decoration: underline;">Scenario</span>: vogliamo rendere uno <strong>scambio dati sicure</strong>, magari per rafforzare il <strong>sistema di autenticazione</strong> di un <strong>sito web</strong> o lo <strong>scambio dati</strong> fra una<strong> webApp</strong>, ma anche una <strong>App nativa</strong> e un <strong>server</strong>.</p>
<p>Per fare questo dovremo utilizzare il <strong>protocollo HTTPS</strong> che abbina il comune HTTP ad un ulteriore <strong>protocollo di crittografia asimmetrica</strong>.<br />
HTTPS è infatti l&#8217;acronimo di <strong>HyperText Transfer Protocol over Secure Socket Layer</strong>.<br />
Questo sistema di sicurezza è stato pensato proprio per evitare che attraverso tecniche di <strong>man in the middle</strong> un malintenzionato possa fare<strong> sniffing dei dati</strong> scambiati bidirezionalmente fra server e client.</p>
<p><span style="text-decoration: underline;">Problema</span>: se &#8220;tirar su&#8221; un <strong>server LAMP</strong> è ormai alla portata di tutti i <strong>web developer </strong>grazie alle molte distribuzioni<em> out of the box</em>, abilitare l&#8217;https è già un&#8217;operazione più specificatamente <strong>sistemistica</strong>, ma ugualmente attuabile in pochi minuti.</p>
<p><span style="text-decoration: underline;">Spiegazione</span>: su <strong>Ubuntu Server</strong>, così come in molte altre distribuzioni, il <strong>modulo SSL</strong> è già presente nell&#8217;installazione base di <strong>Apache</strong>.<br />
Bisogna solo attivarlo con il seguente comando che abilita anche la <strong>porta 443</strong> di default per l&#8217;https.</p>
<pre class="brush: bash; title: ; notranslate">sudo a2enmod ssl</pre>
<p>Dovremo quindi predisporre una cartella in cui generare i nostri certificati di sicurezza. Consiglio di creare una sottocartella dentro a quella di apache.</p>
<p>Nel caso di Ubunti dovremo lanciare il comando</p>
<pre class="brush: bash; title: ; notranslate">sudo mkdir /etc/apache2/ssl</pre>
<p>In altre distribuzioni come centOS la sottocartella può essere creata con i comando</p>
<pre class="brush: bash; title: ; notranslate">sudo mkdir /etc/httpd/ssl</pre>
<p>Per ottenere <strong>chiave privata</strong> e <strong>certificato</strong> utilizzeremo <strong>openssl</strong> attraverso il seguente comando, riportando i percorsi corretti, scegliendo la <strong>crittografia RSA</strong> a 2048 bit e una validità di 365 giorni.</p>
<pre class="brush: bash; title: ; notranslate">sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt</pre>
<p>Nel caso openssl non fosse presente, si può installare mediante il seguente comando su Ubuntu (o analoghi su altre distro)</p>
<pre class="brush: bash; title: ; notranslate">apt-get install openssl</pre>
<p>La <strong>procedura di creazione dei certificati</strong> pone alcune domande alle quali si può rispondere abbastanza liberamente, es:</p>
<pre class="brush: bash; title: ; notranslate">
Country Name (2 letter code) &#x5B;AU]:IT
State or Province Name (full name) &#x5B;Some-State]:Modena
Locality Name (eg, city) &#x5B;]:Modena
Organization Name (eg, company) &#x5B;Internet Widgits Pty Ltd]:communicationBox
Organizational Unit Name (eg, section) &#x5B;]:Development
Common Name (e.g. server FQDN or YOUR name) &#x5B;]:NomeMioServer
Email Address &#x5B;]:maimaildiriferimento@dominio.it
</pre>
<p>A questo punto il grosso del lavoro è fatto, non resta che settare i <strong>virtual host </strong>per indicare di sfruttare la <strong>cominicazione sicura</strong> sulla porta 443 e chiave e certificato appena creati.</p>
<p>Nella cartella /etc/apache2/sites-available/ è solitamente già presente un file di esempio denominato default-ssl.conf che possiamo modificare o utilizzare come modello per creare il nostro file:</p>
<pre class="brush: bash; title: ; notranslate">
sudo nano /etc/apache2/sites-available/default-ssl.conf
</pre>
<pre class="brush: bash; title: ; notranslate">
&lt;VirtualHost *:80&gt;
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html
        &lt;Directory /&gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/Directory&gt;
        &lt;Directory /var/www/&gt;
                Options -Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        &lt;/Directory&gt;

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        &lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt;
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        &lt;/Directory&gt;

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /doc/ &quot;/usr/share/doc/&quot;
        &lt;Directory &quot;/usr/share/doc/&quot;&gt;
                Options MultiViews FollowSymLinks
                AllowOverride None
                Order deny,allow
                Deny from all
                Allow from 127.0.0.0/255.0.0.0 ::1/128
        &lt;/Directory&gt;

&lt;/VirtualHost&gt;

</pre>
<p>Ora la configurazione è terminata, dobbiamo abilitare come di consueto il virtual host:</p>
<pre class="brush: bash; title: ; notranslate">
sudo a2ensite default-ssl.conf
</pre>
<p>Infine riavviamo il servizio per rendere effettive le modifiche:</p>
<pre class="brush: bash; title: ; notranslate">
sudo service apache2 restart
</pre>
<p>Ora, sincerandosi che il firewall della nostra connessione consenta il traffico sulla porta 443, puntiamo sull&#8217;ip del server, o sul dominio impostato nel virtualhost, ad esempio https://123.123.123.123.<br />
Comparirà un avviso che ci avverte che il certificato non è attendibile, questo è normale in quanto lo abbiamo autogenerato e non acquistato da un ente certificatore. Basterà procedere &#8220;accettando i rischi&#8221; per navigare in maniera sicura. Naturalmente, per siti o app pubbliche, è vivamente consigliato l&#8217;acquisto di un certificato verificato per non &#8220;spaventare&#8221; l&#8217;utente con questo avviso.</p>
<p>L'articolo <a href="https://www.cesarebordi.it/sicurezza-abilitare-https-in-apache2-su-ubuntu-server/">Sicurezza: abilitare HTTPS in Apache2 su Ubuntu server</a> sembra essere il primo su <a href="https://www.cesarebordi.it">Cesare Bordi | Innovation Manager &amp; Back-end Developer</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.cesarebordi.it/sicurezza-abilitare-https-in-apache2-su-ubuntu-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
