MakeCert – creazione di certificati CA e Host

Tramite l’utility makecert è possibile creare certificati x-509 self-signed per scopi di test senza ricorrere all’utilizzo di CA pubbliche
L’utility makecert.exe è parte del pacchetto SDK ed è utilizzabile a partire dalla cartella \bin del percorso di installazione.

Generazione di certificato di tipo CA

makecert.exe -n CN=test-local-Root -r -pe -a sha512 -len 4096 -cy authority -sv test-local-CARoot.pvk test-local-CARoot.cer

le opzioni utilizzate nell’esempio sono:
-n ” specifica il nome del “subject del certificato” p.es CN=Mario Rossi
-pe definisce la chiave privata esportabile in modo da poterla includere nel certificato stesso
-cy l’opzione consente di definire il certificato per entità finale “end” oppure “authority” ossia una CA
-sv consente di definire in file contenente la chiave privata
-r dichiara che il certificato è “self-signed”
-a definisce l’algoritmo di firma, di default viene generato con l’algoritmo sha1
-len definisce la lunghezza in bit della chiave

di default il certificato, se non è specificata l’opzione -e “mm/gg/aaaa” scade il primo gennaio 2040

 

Generazione  di un certificato host generato a partire dalla CA creata in precedenza

makecert.exe -n CN=test.local -iv test-local-CARoot.pvk -ic test-local-CARoot.cer -pe -a sha512 -len 4096 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -sv dc01.pvk dc01.cer

CN definisce il nome host se composto da un FQDN completo.
Altrimenti se dichiarato come sopra oppure con *.test.local è di tipo wildcard
-iv dichiara il file contenente la chiave privata generata per la CA
-ic dichiara il file contenente il certificato della CA
-sky exchange definisce che la chiave è usata per scambio di chiavi e crittografia, se il certificato fosse usato per firma digitale, questo parametro dovrebbe essere dichiarato “signature”
-eku 1.3.6.1.5.5.7.3.1 oid del certificato ossia l’Object Identifier in questo caso indica un certificato SSL server
-sv dc01.pvk
dc01.cer nome del file contenente il certificato vero e proprio

dowlnload

il file makecert è disponibile qui

riferimenti
https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx

RFC relativa alla Internet X.509 Public Key Infrastructure Certificate
https://tools.ietf.org/html/rfc5280#page-110

Database relativo alla definizione dei vari OIDs
http://www.oid-info.com/

https://en.wikipedia.org/wiki/Object_identifier

Annunci

SQUID Reverse Proxy — Accesso ad un back-end HTTPS

Se il sito da esporre tramite il reverse proxy ha attivo il protocollo HTTPS è possibile fare si che SQUID rediriga le chiamate in ingresso con questo protocollo

La configurazione da attivare nel file squid.conf è la seguente:

####### Apertura SSL in ascolto esterno ###############
https_port 443 accel vhost cert=/squid/Certificato/file.crt key=/squid/Certificato/file.key cafile=/squid/Certificato/intermediate.crt defaultsite=<url pubblico>

#####   Redirezione forzata su host interno con HTTPS attivo ###############
cache_peer <ip_interno> parent 443 0 no-query originserver ssl sslflags=DONT_VERIFY_PEER login=PASS connection-auth=off  name=<nome>

la prima riga definisce la modalità con cui SQUID attiva SSL in ascolto dall’esterno, in questo caso con un certificato pubblico

file.crt
file.key
intermediate.crt

sono i files del certificato pubblico ottenuto dalla CA

la seconda riga definisce l’host interno al quale SQUID redirigerà le chiamate

La connessione SSL in ingresso termina su SQUID e ne viene instaurata una nuova verso l’host interno che non necessariamente deve avere lo stesso certificato SSL pubblico, nell’esempio di configurazione riportato l’host interno aveva un certificato “self-signed”