Protocole HTTPS sur scenariServer4.2


#1

Bonjour j’ai mis en place scenariServer4.2 via l’installation par package Debian et tout fonctionne bien en HTTP avec le port 8080. Cependant j’aimerai passer uniquement par le protocole HTTPS port 8443, pour mes tests j’utilise actuellement un certificat auto-généré mais cela ne marche pas et je ne vois rien sur les logs. J’ai généré un certificat via la commande “keytool -genkey -keyalg RSA -alias mylocaltomcat1 -keystore C:\PATH\TO\YOUR\keystore.jks -validity 365 -keysize 2048 -storepass myKeystorePassword -keypass myKeystorePassword”

Et j’ai bien édité mon server.xml en rajoutant la ligne ci-dessous:

J’ai l’impression que le ping marche en https mais je n’arrive pas à me connecter via ScenariChain4.2

Y a-t-il une documentation précise pour la mise en place de la communication en https?

Merci d’avance


#2

Bonjour,

Je vais vous faire une réponse rapide et sûrement trop laconique mais ce que vous voulez faire est tout à fait possible, puisque je le fais régulièrement.

Selon moi, mais je peux me tromper, il serait plus judicieux d’utiliser en front un proxy reverse (par exemple : Apache et un certificat Let’sEncrypt voire un Squid pour le cache, mod_deflate|expires|headers|rewrite|proxy|etc…).

Il vous faut aller lire la documentation concernant la distribution que vous utilisez, la documentation de la fondation Apache et celle de Let’s Encrypt.

Le cahier de l’administrateur Debian peut vous être utile.

Vous créez un virtualhost 80 avec une règle “RewriteRule” vers votre virtualhost 443 dans lequel vous y mettez les chemins vers SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile; sans oublier les directives concernant ProxyPass vers le tomcat.

Si je me souviens bien, le ping ce n’est pas le même protocole que le HTTPS, non?

Scenari c’est un peu du Java, si vous n’arrivez pas à vous connecter c’est peut-être à cause du certificat auto-signé. Java nécessite que vous ajoutiez au “store” votre certificat “root”, ça va nous amener trop loin mais il vous faut faire un truc du genre :

 keytool -importcert \
-alias monRootCacert \
-file /chemin/vers/monRootCacert.crt \
-keystore /etc/ssl/certs/java/cacerts

Il y a aussi quelques soucis avec MD5, RSA keysize, DH :wink:

Bon courage,

Xavier

PS: A moins d’être développeur Java, utilisateur d’Eclipse par exemple et donc d’avoir la nécessité d’ajouter un certificat au store de Java pour vous connecter à un serveur en TLS, je vous déconseille pour l’instant cette solution, le proxy reverse reste la solution la “plus facile” à déployer même si vous bricolez un truc peu performant.


#3

Bonjour,

En ce qui me concerne la méthodologie expliquée ici fonctionne et je parviens à voir la page par défaut de tomcat sur https://ip_machine:8443 avec un certificat RSA auto-généré par le key tool.

mais pas moyen de connecter scenari en spécifiant comme repository https://ip_manchine:8443/scenariserver4.2 …

Ai modifié le fichier cfg.conf pour spécifier https://localhost:8443 et régénéré la configuration scenari server mais cela n’a rien résolu.

Si Java active bien le HTTPS et que le client Web fonctionne, ne faut il pas ajouter le certificat dans l’application Scenari client ?


#4

Bonjour @Yves_ECTEG ,

J’ai écrit tout ça il y a longtemps maintenant :slight_smile:

Il faudrait que je re-teste une installation avec un certificat auto-signé ou un certificat de type Cacert.org ce que je ne fais plus depuis que Letsencrypt.org permet d’obtenir des certificats valides gratuitement.

Sinon j’avais écrit dans l’ancien forum un post sur l’intégration des certificats au niveau des applis SCENARI mais là aussi il faut re-tester. Cet ancien post est un peu technique tout de même donc s’il y a un réel besoin je peux le reprendre et le simplifier.

[edit]En relisant encore une fois votre post, il faut tout de même faire attention au fait que https://ip:8443 ce n’est pas la même chose que https://sub.domain.tld:8443 en ce qui concerne les certificats.
Votre certificat ne sait rien de vos IPs en revanche il embarque des informations sur votre nom de domaine et les sous-domaines. J’ai écrit une note technique sur la gestion des certificats sur un autre site, si c’est encore en ligne je vous communiquerais le lien :wink:

Bonnes fêtes,

Xa


#5

Je n’ai pas de serveur configuré avec un certificat auto-signé sous la main et je n’ai pas la nécessité d’en déployer un mais après un test rapide, il semble que vous pouvez, en adaptant les informations du post de l’ancien forum, ajouter votre certificat root à votre SCENARIclient, exemple sur Debian 9:

sudo apt install libnss3-tools

puis lister les certificats du profile

certutil -d dbm:$HOME/.scenari/cl.4.2/[nomduprofile].default -L 

ajouter votre certificat au client

certutil -d dbm:$HOME/.scenari/cl.4.2/[nomduprofile].default -A -t TC -n "myOrgRootCa" -i /path/to/CA/root.pem

Si jamais vous utilisez Chrome/Chromium pour tester votre installation, la manip est un peu différente, ce navigateur va rechercher le certificat dans une PKI locale:

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "myOrgRootCa" -i /path/to/CA/root.pem

et dans Firefox il vous suffit d’importer le certificat.

Vous pouvez aussi tester la validité de votre configuration serveur avec la commande suivante:

openssl s_client -connect sub.domain.tld:443

[edit] autant pour moi, vous pourrez vérifier la présence de votre certificat dans les appli SCENARI en ouvrant le menu : Application > Préférences > Avancé onglet Chiffrement

Revenez nous dire ce qui marche ou pas, ça pourrait aider d’autres utilisateurs de SCENARI :wink:

A+

Xa