Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
Bonjour,
Je suis en train de faire des tests pour contacter un web service sécurisé.
J'ai tout d'abord commencer à tester une connection vers un site sécurisé histoire de bien comprendre le Package UTL_HTTP.
Voici pour un site non sécurisé:
Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT UTL_HTTP.REQUEST('http://www.amazon.com', 'http://user:pass@10.0.2.21:8070', NULL, NULL) FROM dual;Ensuite j'enregistre le certificat de la version securisé du site dans l'oracle wallet et je test à nouveau la requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <html> <head> <style type="text/css"><!-- BODY { font-family: verdana,arial,helvetica,sans-serif; font-size: small; background-color: #FFFFFF; color: #000000; margin-top: 0px; } TD, TH { font-family: verdana,arial,helvetica,sans-serif; font-size: small; } ....
Ce qui me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT UTL_HTTP.REQUEST('https://www.amazon.com', 'http://<USER:PASS>@10.0.2.21:8070', 'file:/Orasoftware/Oracle_wallet/', '<wallet password>') FROM dual;
Après recherche, j'ai trouver grace à une erreur de manipulation, qu'il fallait non pas sauvegarder le dernier certificat dans la liste mais bien l'éditeur de ce certificat. (voir la pièce jointe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1577 ORA-29024: Certificate validation failure ORA-06512: at line 1
Je sauvegarde donc le root certificat et l'ajoute dans le wallet.
je refais tourner la querry, et là, tout fonctionne correctement.
Est-ce normal?
Pourquoi ne fait-il pas confiance au certificat "www.amazon.com" mais bien à "VeriSign Class 3 Secure Server CA - G2" alors que ce dernier à bien valider le certificat de chez Amazon?
Merci d'avance
Partager