Table of Contents
Aggiornare il certificato del 389-ds
1. Verifica certificati CA
E' necessario che nel DB dei certificati siano presenti TUTTI i certificati delle CA dalle quali ci serviamo.
Verificare quindi che nel "NSS Certificate DB" ci sia il certificato della CA che ha emesso il nuovo certificato del 389-ds (compresi eventuali altri certificati della catena delle CA)
certutil -d /etc/dirsrv/slapd-$DSUID -L
Se necessario, procedere all'aggiornamento del DB. Le istruzioni sono in Aggiornare il DB dei certificati delle CA nel 389-ds
2. Preparazione certificato in formato pkcs12
Convertire il certificato con chiave privata del server in formato pkcs12 in un file temporaneo. Non impostare una password.
openssl pkcs12 -export -inkey ds_server_key.pem -in ds_server_crt.pem -out /tmp/crt.p12 -nodes -name 'server-cert'
3. Rimozione del vecchio certificato
Prima di procedere alla rimozione del certificato aprire la console e lasciarla aperta fino al termine delle operazioni: in caso di problemi sarà più semplice intervenire.
389-console -x nologo -a http://localhost:9830/ -u "cn=Directory Manager" -y /root/.ssh/dmpw &
Eliminare il vecchio certificato
certutil -D -d /etc/dirsrv/slapd-$DSUID -n 'server-cert'
4. Import del nuovo certificato
Importare il certificato con chiave privata del server nel DB di 389-ds. Verrà richiesto di inserire la password per l'accesso al "NSS Certificate DB" (/etc/dirsrv/slapd-$DSUID/pin.txt). La prima password che viene chiesta è quella del DB di 389-ds, la seconda è invece quella eventualmente impostata nell’export (premere semplicemente invio, se non è stata impostata la password per il p12).
cd /etc/dirsrv/slapd-$DSUID pk12util -i /tmp/crt.p12 -d .
Controllare ora dalla console che sia presente il nuovo certificato. Chiudere la console.
Rimuovere il file utilizzato per l'import
rm /tmp/crt.p12
5. Restart del DS
Far ripartire il server 389-DS e verificare lo stato del servizio
systemctl restart dirsrv.target ; systemctl status dirsrv@$DSUID.service oppure /etc/init.d/dirsrv restart
Verifica Certificati Master
ldapsearch -LLL -o ldif-wrap=no -x -D "cn=Directory Manager" -w `cat ~/.ssh/dmpw` -b 'cn=config' cn=dsm* infnCertSubjectDN
dn: cn=dsm1.infn.it,cn=config infnCertSubjectDN: CN=dsm1.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm1.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT dn: cn=dsm2.infn.it,cn=config infnCertSubjectDN: CN=dsm2.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm2.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT dn: cn=dsm3.infn.it,cn=config infnCertSubjectDN: CN=dsm3.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm3.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT
Oppure tramite socket (valido solo dalla RockyLinux 8)
ldapsearch -Q -LLL -o ldif-wrap=no -Y EXTERNAL -H ldapi://%2fvar%2frun%2f"slapd-server.socket" -b 'cn=config' cn=dsm* infnCertSubjectDN
Esempio
ldapsearch -Q -LLL -o ldif-wrap=no -Y EXTERNAL -H ldapi://%2fvar%2frun%2fslapd-ds1.socket -b 'cn=config' cn=dsm* infnCertSubjectDN dn: cn=dsm1.infn.it,cn=config infnCertSubjectDN: CN=dsm1.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm1.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT dn: cn=dsm2.infn.it,cn=config infnCertSubjectDN: CN=dsm2.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm2.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT
dn: cn=dsm3.infn.it,cn=config infnCertSubjectDN: CN=dsm3.infn.it,OU=INFN-AAI,O=Istituto Nazionale di Fisica Nucleare,L=Frascati,C=IT infnCertSubjectDN: CN=dsm3.infn.it,OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT
L'ultimo certificato rilasciato (Aprile 2022) ha questi valori:
OU=SSNN,O=Istituto Nazionale di Fisica Nucleare,ST=Roma,C=IT