Nexus
Sommaire
Présentation
Nexus est un gestionnaire de dépôt pour maven, développé sous licence GPL par la société Sonatype. Il est disponible en version gratuite, dite "communautaire", ou payante selon les besoins.
Site officiel : https://fr.sonatype.com/nexus-repository-sonatype
Activation du SSL
Cette procédure s'appuie sur la procédure officielle disponible à : https://help.sonatype.com/repomanager3/security/configuring-ssl#ConfiguringSSL-InboundSSL-ConfiguringtoServeContentviaHTTPS
Créer le keystore
Se rendre dans le dossier $data-dir/etc/ssl
et créer une paire de clé privée/publique en utilisant keytool :
keytool -genkeypair -keystore keystore.jks -storepass password -alias example.com \ -keyalg RSA -keysize 2048 -validity 5000 -keypass password \ -dname 'CN=*.example.com, OU=Sonatype, O=Sonatype, L=Unspecified, ST=Unspecified, C=US' \ -ext 'SAN=DNS:nexus.example.com,DNS:clm.example.com,DNS:repo.example.com,DNS:www.example.com'
Cela aura pour effet de créer un keystore keystore.jks
dans lequel sera stockées les clés précédemment créées.
Activer le SSL
Editer le fichier $data-dir/etc/nexus.properties
et effectuer les modifications suivantes :
- Ajouter l'argument
application-port-ssl
et lui donner la valeur du port d'écoute souhaité- Exemple :
application-port-ssl=8443
- ATTENTION, il n'est pas possible d'utiliser un port entre 0 et 1024 car ils sont réservés au système et Nexus tourne avec un utilisateur non-root
- Exemple :
- Modifier et/ou dé-commenter l'argument
nexus-args
et s'assurer que la valeur${jetty.etc}/jetty-https.xml
soit présente.- Exemple :
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml
- Optionnel : pour désactiver le http simple, retirer la valeur
${jetty.etc}/jetty-http.xml
- Exemple :
- Ajouter l'arguement
${jetty.etc}/jetty-http.xml
Ajouter le keystore
Editer le fichier $install-dir/etc/jetty/jetty-https.xml
et modifier les paramètres dont les noms sont KeyStorePassword
, KeyManagerPassword
et TrustStorePassword
et y indiquer le mot de passe du keystore précédemment configuré.
Juste avant le paramètre KeyStorePassword
, ajouter le paramètre certAlias
en y indiquand l'alias précédemment défini dans le keystore. Exemple : <Set name="certAlias">jetty</Set>
.
Redémarrer Nexus
Redémarrer Nexus afin que les modifications soient prises en compte.