Passa ai contenuti principali

Creazione di certificati SSL con OpenSSL

OpenSSL è una implementazione del protocollo SSL. E' un programma open source ed è disponibile sia per Windows che per Linux.
Con OpenSSL si possono creare facilmente dei certificati. Vediamo come.
  1. Generazione del proprio Certificate Authority. Si genera una chiave con l'algoritmo des3 nel file ca.key; dopo si genera il vero e proprio certificato, valido per 365 giorni, nel file ca.crt

    openssl genrsa -des3 -out ca.key 4096
    openssl req -new -x509 -days 365 -key ca.key -out ca.crt
    

    Con il secondo comando verranno chieste alcune informazioni dell'Ente Certificatore (nessuna di queste è obbligatoria): Country Name, Province Name, Locality Name, Organization Name, ecc.
    Ora abbiamo il certificato che useremo per firmare altri certificati. Quindi va tenuto al sicuro!
  2. Generazione di un secondo certificato. Si genera una chiave con l'algoritmo des3 nel file server.key e poi si genera la richiesta di firma del certificato, nel file server.csr

    openssl genrsa -des3 -out server.key 4096
    openssl req -new -key server.key -out server.csr
    

    Anche qui, con il secondo comando verranno chieste alcune informazioni (nessuna di queste è obbligatoria): Country Name, Province Name, Locality Name, Organization Name, ecc.
  3. Firma della richiesta. Il certificato viene salvato nel file server.crt, è valido 365 giorni ed è firmato dall'Ente Certificatore (cioè noi). Bisogna avere cura di incrementare di 1 il serial (vedi parametro set_serial) e consiglio di mantenere una mappa di (serial, nome organizzazione)

    openssl x509 -req -days 365 -in server.csr \
    -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
    


L'uso che si può fare dei certificati è vario: crittare file ed email o usarlo in Apache per ottenere una comunicazione sicura SSL.

Commenti

Popolari

Telegram: inviare messaggi su un gruppo da un bot

Telegram è più che l'ennesima app di messaggistica. Se vi sono alcuni compiti semplici e ripetitivi (ad esempio l'invio di news su un gruppo) è possibile automatizzarli programmando opportunamente un Bot.

In questa guida vedremo come inviare semplici messaggi su un gruppo. Per farlo, sono necessarie due informazioni: TOKEN del bot e CHAT_ID, ossia l'identificativo del gruppo.

Step 1 - creazione del Bot Da Telegram cerchiamo @BotFather (http://telegram.me/BotFather).

Dopo essere entrati nella chat, digitiamo il comando
/newbot
Inseriamo il nome che vogliamo dare, ad esempio
Bot di test
Infine, scegliamo uno username univoco e che termini con _bot, ad esempio
BotteDiTest_bot
Nel messaggio di risposta otteniamo il TOKEN, la chiave segreta che ci permetterà di sfruttare le API di Telegram.





Step 2 - aggiunta del Bot nel gruppo Da Telegram entramo nelle impostazioni del gruppo, e aggiungiamo tra i membri il nostro bot.
Per scoprire l'id del gruppo è sufficiente consultare gli a…

Trasformare il tasto <invio> in <tab> nelle form HTML

Molto spesso, mentre si compilano i campi di una form html, può venire spontaneo battere il tasto invio senza voler fare il submit della form. Tuttavia, salvo diversi accorgimenti, si ottiene così proprio il submit della form. In un'applicazione web, in cui vengono inseriti molti dati attraverso la tastiera, può essere utile assegnare al tasto d'invio lo stesso comportamento del tasto tab. Il seguente script, che ho trovato in un post sul forum codeigniter.com, fa uso di jQuery e fa al caso nostro. Ad ogni pressione del tasto invio sui campi di classe "enter" il focus viene spostato al campo successivo (di classe "enter"), a meno che non ci troviamo sull'ultimo campo (di classe "enter").
<script type="text/javascript"> $(document).ready(function(){ $("input").addClass("enter"); //se necessario, rimuovere questa linea e assegnare la class="enter" ai soli campi sui quali si desidera trasformare e…

Virtual field in Laravel/ Eloquent

L'implementazione dei virtual field in Laravel è molto semplice, ma la documentazione ufficiale non è immediata. Vedremo qui come fare.

I virtual field sono campi del model che non hanno corrispondenza nel database. Essi sono utili nel caso, ad esempio, si desideri riassumere più campi del model in un singolo "campo virtuale".

Vediamo l'esempio della classe Fattura così definita
Fatturanumero: Integer data_fattura: Datetime
[...]
Si desidera definire il virtual field descrizione_numero_data che restituisca la seguente concatenazione del numero e della data
"Fattura numero 5 del 15/07/2000".

In Laravel l'implementazione del virtual field avviene:

implementando un Accessor, che restituisce la stringa desiderata;specificando il nome_virtual_field nell'array $appends del model.

<?phpclassFatturaextends Model { protected$appends=array("descrizione_numero_data"); publicfunctiongetDescrizioneNumeroDataAttribute() { return"Fattura …