CONFIGURER NQI-ORCHESTRA EN MODE SSL AVEC AUTORITÉ DE CERTIFICATION QUESTION Peut-on configurer NQI-Orchestra en mode SSL avec un certificat signé par une autorité de certification (Verisign, Thawte, Godaddy, ...) ? RÉPONSE Oui, il est possible de configurer NQI-Orchestra en mode SSL avec un certificat signé par une autorité de certification. TUTORIEL Cet article montre comment configurer le serveur JBoss de NQI-Orchestra en mode SSL en générant une demande de certificat CSR et en intégrant le certificat émis dans Jboss. Environnement OS/Programme Version OS du serveur applicatif Linux / Windows NQI-Orchestra Version 4.x / 5.x Base de données toutes bases de donneés Dans la suite nous considérerons que l'application est installée dans le répertoire NQI-Orchestra. Les commandes indiquées ci-dessous ont été réalisées sous environnement linux mais sont les mêmes sous environnements windows. Il faudra juste modifier les chemins d'exécution en remplaçant les / par des \ (Exemple remplacer NQI-Orchestra/java/bin/... par NQI-Orchestra\java\bin\...) Création du keystore pour le nouveau certificat ssl (ex : orchestra.keystore) Dans un terminal linux ou fenêtre dos entrer la commande suivante NQI-Orchestra/java/bin/keytool -genkey -keyalg RSA -keystore NQI-Orchestra/jboss/server/nqi/conf/orchestra.keystore -alias orchestra et répondez au questions : Définissez tout d'abord un mot de passe pour le keystore (Exemple : changeit) : Tapez le mot de passe du Keystore : Ressaisissez le nouveau mot de passe : Puis entrez les informations nécessaires à la génération de la demande de certification CSR et au certificat lui-même. Entrez le FQDN de l'application lorsqu'il est demandé de renseigner vos noms et prénoms. Le certificat ne sera valable que pour ce cette adresse. Exemple, si vous accèdez à l'application avec l'url https://monapplication.mondomain.com/cpms, entrez le FQDN monapplication.mondomain.com Quels sont vos prénom et nom ? [Unknown] : monapplication.mondomain.com Quel est le nom de votre unité organisationnelle ? [Unknown] : IT Quelle est le nom de votre organisation ? [Unknown] : MonEntreprise Quel est le nom de votre ville de résidence ? [Unknown] : MaVille Quel est le nom de votre état ou province ? [Unknown] : Alpes-Maritimes Quel est le code de pays à deux lettres pour cette unité ? [Unknown] : FR Est-ce CN=monapplication.mondomain.com, OU=IT, O=MonEntreprise, L=MaVille, ST=Alpes-Maritimes, C=FR ? [non] : oui Il vous est ensuite demandé de définir un mot de passe pour la clé que vous venez de créer. Il est impératif d'utiliser le même mot de passe que pour le keystore. => Appuyez sur Entrée. Spécifiez le mot de passe de la clé pour Keystore) : Ressaisissez le nouveau mot de passe : (appuyez sur Entrée s'il s'agit du mot de passe du Creation du CSR pour utilisation avec votre fournisseur de certificat SSL NQI-Orchestra/java/bin/keytool -certreq -keyalg RSA -file orchestra.csr -keystore NQI-Orchestra/jboss/server/nqi/conf/orchestra.keystore -alias orchestra Générer le certificat auprès de votre fournisseur de certificat. Les informations ci-dessous sont données à titre indicatif et dépendent de votre fournisseur de certificat. Conformez-vous à ses instructions. Effectuer la demande de certificat auprès de fournisseur de certificat SSL (Verisign, Thawte, Godaddy, ...) avec le CSR généré (fichier orchestra.csr). En plus de votre certificat propre (pour monapplication.mondomain.com), votre fournisseur vous fournira également des certificats dits racine et/ou intermédiaires qui lui sont propres. Le format des certificats délivrés par votre fournisseur dépend du serveur web sur lequel il va être installé. Il peut vous être demandé au moment de les télécharger de spécifier le serveur cible. Sélectionnez Tomcat ou Jboss selon les choix proposés. Il est nécessaire d'importer ces différents certificats dans le keystore (le mot de passe de celui-ci vous sera demandé). Dans la suite nous considérerons que vous devez importer 2 certificats racine et/ou intermédiaires de votre fournisseur, primarycert.crt et secondarycert.crt et votre certificat mycert.crt. Importer le premier certificat : NQI-Orchestra/java/bin/keytool -import -trustcacerts -alias primaryIntermediate -keystore NQI-Orchestra/jboss/server/nqi/conf/orchestra.keystore -file primaryinter.crt Importer le second certificat : NQI-Orchestra/java/bin/keytool -import -trustcacerts -alias secondaryIntermediate -keystore NQI-Orchestra/jboss/server/nqi/conf/orchestra.keystore -file secondaryinter.crt Importer le certificat émis pour monapplication.mondomain.com : L'alias du certificat doit correspondre à l'alias saisi lors de la création du keystore et du CSR (orchestra) NQI-Orchestra/java/bin/keytool -import -trustcacerts -alias orchestra -keystore NQI-Orchestra/jboss/server/nqi/conf/orchestra.keystore -file mycert.crt Configurer le serveur JBoss 1. Effectuer une copie de sauvegarde du fichier de configuration suivant NQI-Orchestra/jboss/server/nqi/deploy/jbossweb.sar/server.xml puis editez-le : Décommenter la partie gérant le SSL Remplacer : NQI-Orchestra/jboss/server/nqi/deploy/jbossweb.sar/server.xml <!-- SSL/TLS Connector configuration using the admin devl guide keystore <Connector protocol="HTTP/1.1" SSLEnabled="true" port= "${jboss.webserver.https.connector.port}" address="${jboss.bind.address}" maxThreads= "250" strategy="ms" maxHttpHeaderSize="8192" acceptCount="100" emptySessionPath= "true" URIEncoding="UTF-8" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" compression= "on" compressableMimeType= "application/json,text/json,text/html,text/xml,text/css,text/javascript,application/x-javascript,application/ ciphers= "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA3 scheme= "https" secure="true" clientAuth="false" keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore" keystorePass= "rmi+ssl" sslProtocol = "TLS" /> --> par (remonter --> en fin de la 1ère ligne après server.xml) NQI-Orchestra/jboss/server/nqi/deploy/jbossweb.sar/server.xml <!-- SSL/TLS Connector configuration using the admin devl guide keystore --> <Connector protocol="HTTP/1.1" SSLEnabled="true" port= "${jboss.webserver.https.connector.port}" address="${jboss.bind.address}" maxThreads= "250" strategy="ms" maxHttpHeaderSize="8192" acceptCount="100" emptySessionPath= "true" URIEncoding="UTF-8" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" compression= "on" compressableMimeType= "application/json,text/json,text/html,text/xml,text/css,text/javascript,application/x-javascript,application/ ciphers= "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA3 scheme= "https" secure="true" clientAuth="false" keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore" keystorePass= "rmi+ssl" sslProtocol = "TLS" /> La ligne ciphers=... a été rajoutée tardivement et peut être absente de votre fichier server.xml. Il est alors nécessaire de l'ajouter. Renseigner l'accès au fichier keystore (keystoreFile) ainsi que le mot de passe du keystore (keystorePass) (voir création du keystore plus haut) NQI-Orchestra/jboss/server/nqi/deploy/jbossweb.sar/server.xml keystoreFile="${jboss.server.home.dir}/conf/orchestra.keystore" keystorePass= "changeit" sslProtocol = "TLS" /> Important Sous Linux, il est nécessaire d'exécuter l'application avec le user root pour tout port inférieur à 1024 (inclus donc le port SSL par défaut 443). En cas d'un utilisateur non root, le port 8443 est généralement utilisé. Tester l'installation Démarrer l'application NQI-Orchestra et tester l'installation https://monapplication.mondomain.com/cpms Références : https://www.networking4all.com/fr/support/certificats+ssl/manuels/java/serveur+web+bas%C3%A9+java/commandes+keytool http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html