Post

Certificati SSL Self-Signed How-To

Certificati SSL Self-Signed How-To

X.509 è uno standard ITU (Unione internazionale delle telecomunicazioni) che definisce il formato dei certificati a chiave pubblica. X.509 sono utilizzati prevalentemente dai protocolli crittografici TLS / SSL, la base per l’HTTPS. Un certificato X.509 associa un’identità a una chiave pubblica utilizzando una firma digitale. Un certificato contiene un’identità (nome host, organizzazione, ecc.) e una chiave pubblica (RSA, DSA, ECDSA, ed25519, ecc.) è firmato da un’autorità di certificazione o è Self Signed (autofirmato).

Appunti per Certificati SSL

Certificati Self-Signed

Genera CA

  1. Genera RSA
1
openssl genrsa -aes256 -out ca-key.pem 4096
  1. Genera un Cert. CA pubblica
1
openssl req -new -x509 -sha256 -days 365 -key ca-key.pem -out ca.pem

Generare Certificato

  1. Crea una key RSA
1
openssl genrsa -out cert-key.pem 4096
  1. Crea un certificato Signing Request (CSR)
1
openssl req -new -sha256 -subj "/CN=tuocn" -key cert-key.pem -out cert.csr
  1. Crea un extfile con tutti gli alternative names al suo interno
1
echo "subjectAltName=DNS:tuo-record.dns,IP:257.10.10.1" >> extfile.cnf
1
2
# OPZIONALE
echo extendedKeyUsage = serverAuth >> extfile.cnf
  1. Crea il certificato
1
openssl x509 -req -sha256 -days 365 -in cert.csr -CA ca.pem -CAkey ca-key.pem -out cert.pem -extfile extfile.cnf -CAcreateserial

Formati dei Certificati

Certificati X.509 esistono nel formato Base64 PEM (.pem, .crt, .ca-bundle), PKCS#7 (.p7b, p7s) e formato binario DER (.der, .cer), PKCS#12 (.pfx, p12).

Convertire i Certificati

Comando Conversione
openssl x509 -outform der -in cert.pem -out cert.der PEM a DER
openssl x509 -inform der -in cert.der -out cert.pem DER a PEM
openssl pkcs12 -in cert.pfx -out cert.pem -nodes PFX a PEM

Verificare i Certificati

openssl verify -CAfile ca.pem -verbose cert.pem

Installare il certificato CA Cert come trusted root CA

Su Debian & Derivati

  • Sposta il certificato CA (ca.pem) in /usr/local/share/ca-certificates/ca.crt.
  • Aggiorna lo store dei certificati con:
1
sudo update-ca-certificates

Fare riferimento alla documentazione qui. e qui.

Su Fedora

  • Sposta il certificato CA (ca.pem) in /etc/pki/ca-trust/source/anchors/ca.pem o /usr/share/pki/ca-trust-source/anchors/ca.pem
  • Eseguire (con sudo se necessario):
1
update-ca-trust

Fare riferimento alla documentazione qui.

Su Windows

Presupponiamo che il certificato CA è stato generato nel seguente path: C:\ca.pem, esegui:

1
Import-Certificate -FilePath "C:\ca.pem" -CertStoreLocation Cert:\LocalMachine\Root
  • Imposta -CertStoreLocation a Cert:\CurrentUser\Root nel caso in cui vuoi che il certificato sia trusted per il solo utente autenticato durante la sessione corrente.

O

nel prompt dei comandi, esegui:

1
certutil.exe -addstore root C:\ca.pem
  • certutil.exe è un tool di sistema (classico System32) e aggiunge a tutto il sistema.

Su Android

Gli step possono variare da device a device, di seguito delle linee guida generalizzate (occorre incaso trovare nelle vostre Impostazioni e cercare “certificati” all’interno di esse nel riquadro con la lente):

  1. Aprire le Impostazioni del vostro telefono
  2. Trovate le voci Codifica e Credenziali. generalmente lo su può trovare sotto Impostazioni > Sicurezza > Codifica e Credenziali
  3. Seleziona Installare un certificato
  4. Seleziona Certificato CA
  5. Localizzate il vostro ca.pem sulla vostra SD Card o Storage interno usando il file manager.
  6. Selezionatelo e caricatelo.
  7. Fatto!
Questo post è sotto licenza CC BY 4.0 a nome dell'autore.