Problème

L'exécution sur un AS/400 d'un EXECUTER_HTTP avec une url en https rend un *CODE_RETOUR à 77. Cette erreur se produit même si on utilise l'option --insecure.

Solution

Cette erreur peut arriver parce que le magasin de l'AS/400 des certificats n'existe pas ou parce que le profil utilisateur AS/400 exécutant le EXECUTER_HTTP n'a pas les droits en lecture sur le magasin de l'AS/400 contenant les certificats de l'AS/400.

Il faut d'abord s'assurer que le magasin *SYSTEM existe bien dans le DCM (Digital Certificate Manager) de votre AS/400 et si ce n'est pas le cas il faut le créer.
Pour cela voir : http://www-01.ibm.com/support/docview.wss?uid=nas8N1010320

Par défaut ce magasin correspond au fichier suivant de l'IFS :  /QIBM/UserData/ICSS/Cert/Server/DEFAULT.KDB.
Il semble que par défaut sur l'AS/400 ce fichier soit en *EXCLUDE pour *PUBLIC.

Pour résoudre le problème 2 solutions sont possibles :

Solution 1 :  (un peu "brutale" en terme de droit)

  • Accorder le droit spécial *ALLOBJ au profil utilisateur exécutant le EXECUTER_HTTP

Solution 2 :  

Il s'agit de modifier les droits sur le fichier (et l'imbrication des dossiers le contenant).

Depuis un profil genre QSECOFR (ou ayant le droit spécial *ALLOBJ) :
  1. faites un WRKLNK OBJ('/QIBM')
  2. faites l'option 9 ("Gérer les droits") devant la ligne "QIBM" et vérifiez que l'utilisateur *PUBLIC a le droit de données au moins en *RX. Si ce n'est pas le cas accordez le via l'option 2 ("Modifier droit utilisateur") de ce nouvel écran.
  3. revenez sur sur la liste avec "QIBM", et faites l'option 5 ("Afficher") devant la ligne "QIBM".
  4. faites l'option 9 ("Gérer les droits") devant la ligne "UserData" et vérifiez que l'utilisateur *PUBLIC a le droit de données au moins en *RX. Si ce n'est pas le cas accordez le via l'option 2 ("Modifier droit utilisateur") de ce nouvel écran.
  5. refaites l'équivalent des étapes 3 et 4 pour les sous-dossiers "ICSS", "Cert", "Server" et pour le fichier "DEFAULT.KDB"
  6. pour s'assurer que tous les dossiers imbriqués et le fichier "DEFAULT.KDB" ont bien au moins le droit *RX pour *PUBLIC (ou pour le profil utilisateur exécutant le EXECUTER_HTTP), ouvrez une session AS/400 avec le profil de l'utilisateur exécutant le EXECUTER_HTTP et lancez la commande WRKLNK OBJ('/QIBM/UserData/ICSS/Cert/Server/DEFAULT.KDB'), puis faites l'option 5 sur la ligne "DEFAULT.KDB" (si pas d'erreur c'est que c'est OK)

Articles connexes