(sans sujet)
Posté : lun. 19 août 2019, 16:10:44
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 ?
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 ?