IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Delphi 7 Indy 9 TIdHTTP SSL exception EIdOSSLCouldNotLoadSSLLibrary


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut Delphi 7 Indy 9 TIdHTTP SSL exception EIdOSSLCouldNotLoadSSLLibrary
    Bonjour à tous,

    Mon appli doit se connecter à 'Google agenda' pour envoyer des évènements (au format ics), il s'agit du protocole http en SSL, d'où l'utilisation d'un TIdHTTP.
    J'ai bien ajouté les 2 DLL Open SSL (libeay32.dll + ssleay32.dll) dans le dossier de mon appli (et essayé aussi dans Windows/System32). Bref, j'ai suivi tous les conseils que j'ai pu trouver sur tous les forums, mais l'exception 'EIdOSSLCouldNotLoadSSLLibrary' (Impossible de charger la bibliothèque SSL') se déclenche systématiquement.

    J'ai lu à la page https://delphi.developpez.com/faq/?p...-SSL-avec-Indy :
    "il suffit de poser un composant IdSSLIoHandlerOpenSll et le lier au composant Indy par le IOHandler (IdSmtp , IdHttp, etc.)."
    D'ailleurs cette même réponse apparait sur plusieurs forums, mais ce composant est introuvable, ni dans la palette de composant Indy, ni dans les sources Indy. Ceux qui, comme moi, ont posé cette même question ont été renvoyés sur le site d'Embarcadero via un lien qui ne mène plus à rien.

    Est ce quelqu'un utiliserait déjà ce composant 'TIdSSLIoHandlerOpenSll' ou plus simplement saurait comment ouvrir une connexion http ssl avec Delphi 7 et Indy 9 ? Ou pourrait poster le source d'un exemple simple qui aurait été testé et qui fonctionne réellement ?

    Merci d'avance.

  2. #2
    Membre actif Avatar de Coudrak
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 66
    Par défaut
    Si pas de solution, il est possible d'installer Indy 10 pour Delphi 7 aussi (au cas où ça résolve...)

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 577
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Citation Envoyé par pmoncada Voir le message
    J'ai lu à la page https://delphi.developpez.com/faq/?p...-SSL-avec-Indy :
    "il suffit de poser un composant IdSSLIoHandlerOpenSll et le lier au composant Indy par le IOHandler (IdSmtp , IdHttp, etc.)."
    le "Ensuite" avant le "il suffit de" est important, puisqu'il faut avant tout installer les bibliothèques OpenSSL téléchargeable dans divers endroits par exemple ici à noter que sur le site officiel la dernière version est la openssl-1.0.2l publiée le 29/05/2017 (version tout en bas dans la liste du premier site). Conseil attention à la version de votre OS 64 / 32 bits et la version de Indy si vous mettez les bibliothèques dans system32 rappelez vous :
    OS 32 bits copie des bibliothèques 32 bits dans System32
    OS 64 bits copie des bibliothèques 64 bits dans System32
    et des bibliothèques 32 bits dans SYSWOW64

    le fait de poser le composant idSSLIoHandlerSocket permet de rajouter dans la clause uses idIOHandler,idIOHandlerSocket et idSSLOpenSSL (je ne sais quelle version de Indy j'ai sur mon poste mais cela a été vérifié avec un D7) et le composant idSSLIoHandlerSocket existe bien dans la palette
    petite erreur dans la FAQ ?

  4. #4
    Membre émérite
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Par défaut
    Bonjour,

    Attention pour Indy 9 c'est "TIdSSLIOHandlerSocket"
    Et à partir de Indy 10 c'est "TIdSSLIOHandlerSocketOpenSSL"
    on dirait bien que tu n'utilises pas la bonne version de dll !!

    si tu n'y arrives pas j'ai un code d'exemple à fournir il faut juste que remette la main dessus ^^
    un code unique pour Indy 9 & Indy 10

    mais il faudra patienter jusqu'à cette après midi

    Cordialement,
    @+

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut
    Merci à vous 2 de me répondre si rapidement.

    Pour répondre d'abord à Coudrak : Indy 10 me pose des problèmes dans d'autres algorithmes, notamment dans l'envoi de mail avec pièces jointes (le champs ImagePart.ContentDisposition := 'inline'), du fait, je suis revenu à Indy 9 que je maîtrise mieux (mais peut être qu'une subtilité d'Indy 10 m'a échappée).
    Ensuit, comme le suggère SergioMaster, j'ai tenté d'installer la dernière version d'OpenSSL avec le fichier openssl-1.0.2l-i386-win32.zip, ce zip contient un fichier Openssl.exe qui me déclenche une erreur "cannot open config file usr/local/ssl/open.cnf". A quoi sert ce fichier Openssl.exe ? Sert il à installer les dll ? Ne peut on pas se contenter de copier les dll dans windows\system32 ? Si non, comment l'utiliser sans déclencher d'erreur ? J'ai ouvert les 3 fichiers txt du zip sans trouver d'info pertinentes.
    Effectivement le composant idSSLIoHandlerSocket est bien présent sur la palette 'Indy - Gestionnaire d'E/S' mais celui qui est cité dans les FAQ est IdSSLIoHandlerOpenSll, qui reste introuvable.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 577
    Billets dans le blog
    65
    Par défaut
    Re,
    Citation Envoyé par pmoncada Voir le message
    Ne peut on pas se contenter de copier les dll dans windows\system32
    Si en faisant attention à ce que j'ai écrit à propos des répertoires selon l'OS
    Effectivement le composant idSSLIoHandlerSocket est bien présent sur la palette 'Indy - Gestionnaire d'E/S' mais celui qui est cité dans les FAQ est IdSSLIoHandlerOpenSll, qui reste introuvable.
    peut être faudrait-il modifier/corriger la faq pour indiquer que cela dépend de la version d'indy à voir avec l'auteur Rayek
    peut-être aussi faudra t-il utiliser une version moins récente de OpenSSL pour cause de compatibilité avec la version de Indy (doute)

  7. #7
    Membre émérite
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Par défaut
    moi j'utilise aussi bien Indy 9 que Indy 10 sur la même machine
    il suffit d'avoir les bonnes Dll et d'indiquer à Indy ou les chercher en fonction de la version

    Cordialement,
    @+

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 6
    Par défaut
    Sergio, j'ai bien fait attention à ce que tu as écrit et j'ai bien Windows 32 bits, j'ai donc téléchargé 'openssl-1.0.2l-i386-win32.zip', mais je n'arrive pas à lancer l'installation (puisque que copier les fameuses dll dans system32 est insuffisant) et comme le seul exe dans le zip est 'openssl.exe' et qu'il me déclenche une erreur, je ne vois pas comment faire l'install de l'openssl. Je reste donc ouvert à toute nouvelle suggestion.

    Cirec, j'accepterai bien volontiers un code d'exemple.
    Je n'ai pas réussi à faire cohabiter les 2 versions d'Indy, d'ailleurs depuis mon dernier essai, les palettes de composant Indy 9 affichent les icônes des palettes d'Indy 10 (mais c'est secondaire). Comment fais tu pour indiquer à Indy où chercher les bonnes dll en fonction de la version, dans les options de ton projet : 'Projets\options\Repertoires/conditions' ?
    Et est ce mon appli va chercher ces dll dans system32 ou dans son propre dossier en priorité ?

    Je vais donc essayer avec un TIdSSLIOHandlerSocket pour TIdHTTP.IOHandler au lieu d'un TIdSSLIOHandlerSocketOpenSSL (puisqu'il n'existe pas dans Indy 9).

    J'espère ne pas trop vous accaparer avec mes problèmes...encore merci à tous.

Discussions similaires

  1. [INDY] IdHttp et SSL
    Par Rayek dans le forum Delphi
    Réponses: 7
    Dernier message: 04/06/2015, 15h14
  2. Delphi 7: Indy, image depuis https
    Par dptrial003 dans le forum Web & réseau
    Réponses: 0
    Dernier message: 21/11/2008, 21h06
  3. Delphi 7, Indy 10, IdFTP.pas et Access violation
    Par kernigansnotdead dans le forum Composants VCL
    Réponses: 4
    Dernier message: 04/02/2008, 09h10
  4. Comment envoyer une commande UNIX par Delphi avec Indy ?
    Par Vulcanos dans le forum Web & réseau
    Réponses: 2
    Dernier message: 25/09/2007, 22h16
  5. Delphi 2005 Indy 9 Erreur au lancement du programme
    Par Houben Jacques dans le forum Web & réseau
    Réponses: 4
    Dernier message: 08/11/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo