Synology : régénération d'un certificat SSL

NAS Synology 409+

Suite à la mise à jour de mon Synology avec le dernier firmware, le certificat SSL du NAS a disparu.
Je décris ci dessous les différentes étapes nécessaires à la re-génération d'un certificat SSL.

Symptômes

Suite à la mise à jour de mon NAS avec le dernier firmaware (DSM 3.0-1337) je me suis retrouvé bloqué en essayant d'accéder à l'interface d'admin de mon Synology.
Impossible d'accéder à quoi que ce soit.
Sous firefox, l'erreur suivante s'affiche :

Your certificate contains the same serial number
as another certificate issued by the certificate authority. 
Please get a new certificate containing a unique serial number.
(Error code: sec_error_reused_issuer_and_serial)

Diagnostic

En recherchant un peu, je tombe rapidement sur la conclusion suivante : le certificat SSL a disparu.

Traitement

Il faut donc générer un nouveau certificat pour continuer à utiliser les différentes interfaces web en SSL.
Il est nécessaire d'avoir une connexion ssh root au Synology pour y arriver.

Première étape : le fichier openssl.cnf

En cherchant à créer un nouveau certificat d'autorité, je m'aperçoit que le fichier openssl.cnf nécessaire à la génération de la clef n'existe pas.
(WARNING: can't open config file: /usr/syno/ssl/openssl.cnf lors de la génération de la clef du certificat d'autorité).

Il faut donc :
1. télécharger la dernière version d'openSSL sur http://www.openssl.org/source/ (http://www.openssl.org/source/openssl-0.9.8p.tar.gz à l'heure ou j'écris ces lignes)
2. décompresser l'archive et récupérer le fichier apps/openssl.cnf
3. placer ce fichier sur le synology dans le répertoire /usr/syno/ssl

Deuxième étape : génération de l'autorité de certification

Dans la mesure ou je n'ai pas les moyens/l'envie de me payer un certificat pour mon Synology, un certificat SSL auto-signé fera très bien l'affaire.

NAS> mkdir /usr/local/ssl
NAS> cd /usr/local/ssl/
NAS> openssl genrsa -des3 -out ca.key 1024
NAS> openssl req -new -key ca.key -out ca.csr
NAS> openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -out ca.crt

Troisième étape : génération du certificat

NAS> openssl genrsa -out server.key 1024
NAS> openssl req -new -key server.key -out server.csr
NAS> openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 -in server.csr -req -out server.crt

Quatrième étape : installation du certificat

NAS> cd /usr/syno/etc/ssl
NAS> mv /usr/local/ssl/ca.crt ssl.crt
NAS> mv /usr/local/ssl/server.crt ssl.crt
NAS> mv /usr/local/ssl/ca.csr ssl.csr
NAS> mv /usr/local/ssl/server.csr ssl.csr
NAS> mv /usr/local/ssl/ca.key ssl.key
NAS> mv /usr/local/ssl/server.key ssl.key

Il ne reste plus maintenant qu'à redémarrer le Syno.

Sources:

http://59.124.41.244/enu/viewtopic.php?f=36&t=22167&start=0
http://forum.synology.com/wiki/index.php/How_to_generate_custom_SSL_certificates

postheadericon Commentaires

  • Yann Wednesday 18 January à 15h36

    Bonjour,

    Je ne sais pas si l'auteur va se permettre par honnêteté de laisser mon commentaire mais je déconseille vivement ce tutoriel.

    Je l'ai appliqué à la lettre et au moment du redémarrage du Syno, celui-ci ne veut tout simplement plus se connecter :(

    Le certificat n'est pas bon ! Il faut donc chercher une solution ensuite pour aller en telnet ou ssh supprimer les fichiers liés au certificat ssl pour ensuite redémarrer le Syno et qu'on puisse s'y reconnecter !

  • Hubert Wednesday 18 January à 15h45

    Salut Yann,

    Désolé que cela n'ai pas fonctionné sur ton NAS.
    Quelle est la version de ton DSM ?

    Il y a maintenant sur les DSM récent la possibilité d'importer un certificat directement depuis l'interface du DSM.

    Combiné avec la possibilité d'obtenir des certificats gratuitement (par exemple ici : http://www.startcom.org/)

    C'est nettement plus pratique.

  • Guillaume Friday 6 April à 15h48

    Le diagnostic était erronné : sec_error_reused_issuer_and_serial signifie que le certificat est bien présent, mais que le certificat présenté utilise le même n° de série qu'un autre certificat (alors qu'un certificat doit être unique). La solution est simple : il suffit de supprimer les enregistrements correspoindant au Syno dans le magasin du navigateur.