Indy "No se pudo cargar la biblioteca SSL" Delphi XE2 IW14

Sé que esta pregunta ya se ha hecho antes, pero ninguna de las respuestas parece ser apropiada para esta situación.

Estoy usando un componente TIdHttp con un controlador SSL. Mi código es el siguiente:

  idHTTPClient := TIdHTTP.Create(nil);
  ioHnd := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  ioHnd.DefaultPort := iSSL_PORT;
  ioHnd.SSLOptions.Mode := sslmClient;
  idHTTPClient.IOHandler := ioHnd;
  idHTTPClient.Request.AcceptEncoding := 'gzip,deflate,identity';
  idHTTPClient.Request.BasicAuthentication := False;

  try
    idHTTPClient.Post(FFQDN, stmRequest, stmResponse);
  except
    on E:Exception do
    begin
      if IdSSLOpenSSLHeaders.WhichFailedToLoad <> '' then
      begin
        AddMsg('Failed to load file ' + IdSSLOpenSSLHeaders.WhichFailedToLoad + '. ' + E.Message);
      end;
    end;
  end;

Hay tres versiones de los archivos ssleay32 y libeay32.dll en la máquina. Un conjunto está en la misma carpeta que mi ejecutable (V1.0.0.5). Un conjunto está en la carpeta bin Apache (V0.9.8.20) y un conjunto está en C: \ Windows \ SysWOW64 (sin versión pero con fecha 2003).

Cuando se inicia la aplicación, funciona bien. Pero después de unos días, la llamada Post comienza a fallar con "No se pudo cargar la biblioteca SSL". Los archivos que no se pueden cargar son:

SSL_SESSION_get_id, SSL_COMP_get_compression_methods

Una vez que este problema comienza a suceder, no desaparecerá hasta que se reinicie la aplicación. Luego vuelve a funcionar bien durante unos días más.

Me parece que, por alguna razón, los dlls que se están cargando cambian después de unos días. ¿Cómo podría suceder esto y qué podría hacer para garantizar que se carguen los archivos correctos cada vez?

Respuestas a la pregunta(1)

Su respuesta a la pregunta