User Tools

Site Tools


doc:appunti:linux:sa:ssl_cert

This is an old revision of the document!


Certificati SSL

Come generare i certificati SSL autofirmati in un sistema Debian GNU/Linux per i vari programmi: apache2, courier-pop, courier-imap, postfix, exim.

Ispezionare un certificato in formato PEM

Per vedere il contenuto di un file .pem (date di validità, ecc.):

openssl x509 -text -noout -in pop3d.pem

Ispezionare una CRL in formato PEM

Anche una Certificate Revocation List ha la sue date di validità, ecc. Per ispezionarla:

openssl crl -text -noout -in openvpn_crl.pem

Courier POP3 e IMAP

  • Debian fornisce gli script mkpop3dcert e mkimapdcert.
  • La configurazione è in /etc/courier/pop3d.cnf e /etc/courier/imapd.cnf.
  • I certificati vengono salvati in /etc/courier/pop3d.pem e /etc/courier/imapd.pem.

Per allungare la durata del certificato (predefinita solo 365 giorni) e personalizzare la configurazione:

  • Modificare gli script cambiando la direttiva -days, salvare in /usr/local/sbin/.
  • Editare i file .cnf impostando i valori richiesti.
  • Eliminare i vecchi .pem ed eseguire nuovamente gli script.

Postfix

L'installazione predefinita di Postfix usa il certificato /etc/ssl/certs/ssl-cert-snakeoil.pem e la corrispondente chiave /etc/ssl/private/ssl-cert-snakeoil.key.

Noi preferiamo due file nella directory /etc/postfix/ssl/, uno con il certificato (postfix.crt) ed uno con la chiave (postfix.key). In questa pagina uno script in grado di generare i due file.

Editare /etc/postfix/main.cf e impostare:

# TLS parameters
smtpd_tls_cert_file=/etc/postfix/ssl/postfix.crt
smtpd_tls_key_file=/etc/postfix/ssl/postfix.key
smtpd_use_tls=yes

ejabber

La generazione del certificato è inclusa nello script di postinst, eccola con l'unica variazione sulla durata: tre anni invece di uno:

#!/bin/bash
EHOSTNAME=$(hostname -s 2>/dev/null || echo localhost)
EDOMAINNAME=$(hostname -d 2>/dev/null || echo localdomain)
openssl req -new -x509 -days 1096 -nodes -out ejabberd.pem \
    -keyout ejabberd.pem > /dev/null 2>&1 <<+++
.
.
.
$EDOMAINNAME
$EHOSTNAME
ejabberd
root@$EHOSTNAME.$EDOMAINNAME
+++

File p7m

La Pubblica Amministrazione italiana distribuisce i documenti firmati digitalmente sotto forma di file con estensione .p7m. Ecco come estrarne il contenuto se si tratta di un formato PEM (altri enti usano il formato DER):

openssl smime -decrypt -verify -inform PEM -in doc_2018966.pdf.p7m -noverify -out doc_2018966.pdf

Il documento originale al suo interno si presenta in questo modo:

-----BEGIN PKCS7-----
MIMDRc4GCSqGSIb3DQEHAqCDA0W+MIMDRbkCAQExDzANBglghkgBZQMEAgEFADCDAz8iBgkq
...
zqFeaEs7Wsxim1xXyGnGOt2yxzAWuEYba0ggHa7prfr4vsthafc1KRic/8L9/6Czzg==
-----END PKCS7-----

Se si desidera estrarre il certificato:

openssl pkcs7 -in doc_2018966.pdf.p7m -print_certs -out certificate.pem -text

File p7s

Nei messaggi di posta elettronica certificata PEC c'è generalmente un file smime.p7s, esso contiene la signature, cioè la catena dei certificati che garantiscono l'identità di chi ha firmato la mail. Per vederne il contenuto in formato testuale si può usare il comando:

openssl pkcs7 -in smime.p7s -text -inform DER -print_certs -noout
doc/appunti/linux/sa/ssl_cert.1573203710.txt.gz · Last modified: 2019/11/08 10:01 by niccolo