Utilizzare server proxy con certificati self-signed su Linux e NAS QNAP

Utilizzare server proxy con certificati self-signed su Linux e NAS QNAP

Mi sono recentemente imbattuto in una problematica alquanto singolare ovvero interfacciare diverse macchine con server proxy basati su certificato.

In questa piccola guida vi indicherò come procedere per il corretto funzionamento su linux e su NAS QNAP (ma è estendibile anche ad altri sistemi).

In caso di certificati di tipo DER per prima cosa conviene convertirli in PEM.

la procedura è la seguente:

$ openssl x509 -inform der -in CERT_DER.cer -out CERT_PEM.pem

il certificato di partenza (CERT_DER.cer) viene così convertito in formato PEM (CER_PEM.pem). in questo modo sarà facilmente leggibile con un editor di testo.

A questo punto si potrà procedere all’installazione: utilizzeremo quindi lo script update-ca-certificates.

Per prima cosa è importante copiare i certificati da installare nella directory /usr/local/share/ca-certificates/ nella quale lo script andrà a prelevare i certificati “personali”. Fatto ciò si potrà procedere come segue:

# update-ca-certificates

Il comando ha un output molto semplice in cui vengono evidenziati, se correttamente rilevati, i nuovi certificati.

Lo script in maniera automatica andrà a creare in /etc/ssl/certs/ un link simbolico al vostro certificato che avrà come nome il suo hash.

Potete anche procedere manualmente (io ho dovuto farlo in un NAS QNAP che non disponeva di questo script) calcolando prima l’hash e poi creando il link simbolico:

# openssl x509 -hash -noout -in CERT_PEM.pem
XXXXXXXX
# ln -s /etc/ssl/certs/XXXXXXXX.0 /usr/local/share/ca-certificates/CERT_PEM.pem

Piccola nota aggiuntiva per QNAP: ad ogni riavvio del sistema si perdono i certificati. Per far si che si riabilitino è opportuno creare uno script da eseguire all’avvio. Vi consiglio di crearvi dentro a uno dei vostri share una directory riservata allo scopo che contenga sia i certificati sia lo script e richiamare lo script all’avvio del sistema (fate riferimento a questo link per impostare in automatico lo script: https://wiki.qnap.com/wiki/Running_Your_Own_Application_at_Startup). Di seguito vi riporto lo script.

#!/bin/bash

for filename in *pem;do cp $filename `openssl x509 -hash -noout -in $filename`.0; done;
mv *.0 /etc/ssl/certs/

Lo script non fa altro che calcolare l’hash di ogni file con estensione pem e creare una copia del certificato con il nome corretto. Successivamente copierà i file creati nella cartella /etc/ssl/certs.

Alla prossima!

Share this content: