Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Web service et HTTPS

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Web
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
jysaulieres



Inscrit le: 26 Oct 2018
Messages: 13

MessagePosté le: Lun 19 Aoû 2019, 16:10:44    Sujet du message: (sans sujet) Répondre en citant

Bonjour,

J'ai mis en place un webservice de test (sur le LAN) sur un IBMi V7R3 (niveau de cum 18242) et configuré également le HTTPS sur un autre port.
Quand j'interroge le webservice en http/https via Firefox/RestClient il me répond bien.
Sur mon IBM i :
- Le WS répond sur le port non sécurisé (via SQL / HTTPGETCLOB)
- Le WS ne répond pas sur le port sécurisé (via SQL / HTTPGETCLOB)
VALUES cast(SYSTOOLS.HTTPGETCLOB(
'https://10.x.x.x:10234/web/services/WSMAJ01/toto',
'<header name="Content-Type" value="application/json;charset=UTF-8"/
>') as char(2000))
réponse => CPF503E / CPF5104

J'ai suivi la doc :
http://www.volubis.fr/news/liens/courshtm/tcpip_ssl.htm
- Mon systeme est autorité de certification
- export CA vers mon navigateur Firefox
- config SSL du serveur web
extrait du httpd.conf :
10 Listen *:10134
11 Listen *:10234
12 SetEnv HTTPS_PORT 10234
...
23 <VirtualHost *:10234>
24 SSLEngine On
25 SSLAppName QIBM_HTTP_SERVER_WSMAJ01
26 SSLProtocolDisable SSLv2 SSLv3
27 </VirtualHost>

Doc "Pour les applications Java (particulièrement les fonctions HTTPxxx de SYSTOOLS)" :
- application QIBM_HTTP_SERVER_WSMAJ01 est bien associée à un certificat et à une autorité de certification
- export certificat CA via DCM (EDTF dans IFS)
- copie du fichier cacerts (de /QOpenSys/QIBM/ProdData/JavaVM/jdk80/32bit/jre/lib/security) dans un dossier spécifique IFS /WebServices/java_certif/v80/32bits/cacerts
- import certificat via keytools
keytool -import -file /exploit/cert_ws_tests.cer
-keystore /WebServices/java_certif/v80/32bits/cacerts
-storepass changeit
-alias wstests
=> "le certificat a été ajouté au fichier de clé"
- création SystemDefault.properties dans mon /home/user
javax.net.ssl.trustStore=/WebServices/java_certif/v80/32bits/cacerts
javax.net.ssl.trustStorePassword=changeit
- JAVA_HOME = /QOpenSys/QIBM/ProdData/JavaVM/jdk80/32bit

J'ai mis en place le Telnet sécurisé et le ftp sécurisé mais là je bloque.
Je ne maitrise pas les serveurs web, je ne fais qu'utiliser l'interface "IBM Web Administration for I" afin de mettre en place des web services. Nous n'avons pas de site web www sur nos systemes IBM i.
Qu'est ce que j'ai raté pour que les requetes SQL httpgetclob fonctionnent en local ?
_________________
Merci pour votre aide.
JYSA
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 699
Localisation: Nantes

MessagePosté le: Lun 19 Aoû 2019, 16:47:10    Sujet du message: HTTPS Répondre en citant

et depuis un simple navigateur, ca marche ?

et avec POSTMAN ?

pour savoir si l'on doit chercher plutôt coté serveur ou coté client (HTTPGETBLOB)
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jysaulieres



Inscrit le: 26 Oct 2018
Messages: 13

MessagePosté le: Mar 20 Aoû 2019, 08:46:20    Sujet du message: (sans sujet) Répondre en citant

Ca fonctionne avec RestClient sur Firefox après avoir ajouté l'adresse IP en exception :
"10.x.x.x:10234 uses an invalid security certificate. The certificate is not valid for the name 10.x.x.x. Error code: SSL_ERROR_BAD_CERT_DOMAIN".

Idem avec POSTMAN ça fonctionne en désactivant la vérification du certificat SSL (Self-signed SSL certificates are being blocked:
Fix this by turning off 'SSL certificate verification' in Settings > General)
=> https://10.x.x.x:10234/web/services/WSMAJ01/toto2 me répond correctement :
{"REPONSE": "toto2 en majuscule donne : TOTO2 (WSMAJ01)"}
_________________
Merci pour votre aide.
JYSA
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 699
Localisation: Nantes

MessagePosté le: Mar 20 Aoû 2019, 15:35:26    Sujet du message: (sans sujet) Répondre en citant

C'est le danger des certificats auto-signés https://www.globalsign.fr/fr/centre-information-ssl/dangers-certificats-auto-signes/
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jysaulieres



Inscrit le: 26 Oct 2018
Messages: 13

MessagePosté le: Mar 20 Aoû 2019, 16:36:57    Sujet du message: (sans sujet) Répondre en citant

C'est bien pour ça que notre webservice ne sera appelé que sur notre LAN. A partir un IBM i (une partition) ou d'un serveur linux. Le but étant juste de crypter l'échange entre nos systèmes.
Pour vous, cela ne peut pas être mis en place ?
Impossible d'appeler un WS en https via une requète SQL (HTTPGETCLOB) avec un certificat autosigné ?
_________________
Merci pour votre aide.
JYSA
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 699
Localisation: Nantes

MessagePosté le: Mer 21 Aoû 2019, 09:41:54    Sujet du message: Domaine Répondre en citant

JE suis en train de faire qq tests.

qu'a votre certificat, dans "Common Name" ? ca doit être le nom du site (au sens DNS). pourquoi y aller par IP? je préférerais par nom DNS, justement celui du "common name"....

Autre chose, quel est le certificat importé, celui du serveur ou celui du l'autorité de certification (la racine) ?

Enfin que dit l'option javax.net.debug=true ?
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jysaulieres



Inscrit le: 26 Oct 2018
Messages: 13

MessagePosté le: Mer 21 Aoû 2019, 11:45:58    Sujet du message: (sans sujet) Répondre en citant

En suivant la doc :
- configuration SSL sur le serveur apache (nom : WSMAJ01)
- etape 4 de la config SSL, coche de "issue new certificat by CA"
=> création automatique d'un nouveau CA qui a pour nom
certificate : LOCAL_CERTIFICATE_AUTHORITY_ x(7)
common name : tests_CERTIFICATE_AUTHORITY
(notre LPAR se nomme "tests" et est référencée dans le DNS)

Au final :

Quand je vais dans DCM pour voir l'appli serveur :
Application ID: QIBM_HTTP_SERVER_WSMAJ01
Certificate currently assigned: QIBM_HTTP_SERVER_WSMAJ01

Quand je vais dans DCM voir le certificat :
Certificate type: Server
Certificate store: *SYSTEM
Certificate label: QIBM_HTTP_SERVER_WSMAJ01
subject / common name : tests
issuer / common name : tests_CERTIFICATE_AUTHORITY

J'ai exporté le CA via DCM.
Copie du fichier cacerts dans un dossier IFS, et importé le CA dans ce cacerts via keytools

La visu du fichier http.conf indique bien
 23    <VirtualHost *:10234>
  24         SSLEngine On
  25         SSLAppName QIBM_HTTP_SERVER_WSMAJ01
  26         SSLProtocolDisable SSLv2 SSLv3
  27    </VirtualHost>

Par contre quand je vais sur la console HTTPAdmin / Security et onglet "SSL with certificate authentification" j'ai : SSL = DISABLED
Je ne sais pas si le http.conf prend le pas sur l'onglet "security"

Quelques extraits du fichier de log:
jdk.tls.client.protocols is defined as null
SSLv3 protocol was requested but was not enabled
SSLv3 protocol was requested but was not enabled
SUPPORTED: [TLSv1, TLSv1.1, TLSv1.2]
SERVER_DEFAULT: [TLSv1, TLSv1.1, TLSv1.2]
CLIENT_DEFAULT: [TLSv1, TLSv1.1, TLSv1.2]
...
keyStore is: /QOpenSys/QIBM/ProdData/JavaVM/jdk80/32bit/jre/lib/security/cacerts
...
trustStore is: /WebServices/java_certif/v80/32bits/cacerts
...
***
%% Invalidated: [Session-1, SSL_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
Thread-5, SEND TLSv1.2 ALERT: fatal, description = certificate_unknown
...
Thread-5, called closeSocket()
Thread-5, handling exception: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching tests found

Pas facile de donner les infos pertinentes quand on ne comprend pas bien le fonctionnement. Je peux faire des copies écrans / fichiers par mails si vous souhaitez.
_________________
Merci pour votre aide.
JYSA
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 699
Localisation: Nantes

MessagePosté le: Mer 21 Aoû 2019, 13:33:14    Sujet du message: certificat Répondre en citant

dans le trustStore c'est bien le certificat "racine" qu'il faut importer.

attention aussi à la JRE utilisée par le serveur de web service (il y a un magasin par JRE)


(voir la fin de ce cours) http://www.volubis.fr/news/liens/courshtm/web_servicesClient73.html
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
cmasse
Site Admin


Inscrit le: 14 Fév 2007
Messages: 699
Localisation: Nantes

MessagePosté le: Lun 26 Aoû 2019, 12:56:00    Sujet du message: Mail Répondre en citant

Des nouvelles ?

Si vous bloquez toujours on peut finir au téléphone (02 40 30 00 70 ) ou par mail :cmasseATvolubis.fr
_________________
Christian Massé (Volubis.fr)
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jysaulieres



Inscrit le: 26 Oct 2018
Messages: 13

MessagePosté le: Jeu 05 Sep 2019, 15:31:25    Sujet du message: (sans sujet) Répondre en citant

Vous m'avez mis sur la piste : c'etait bien le "common name" du certificat créé automatiquement qui ne fonctionnait pas.
En créant le certificat manuellement et en l'affectant au CA, puis, attribuer ce certificat à l'application, puis en intégrant le CA dans java, c'est passé.
Merci beaucoup pour vos conseils et informations.
_________________
Merci pour votre aide.
JYSA
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots