Fallo en el Secure Socket Layer (SSL) Unknown SSL error (9318) - Forum - OpenEdge General - Progress Community

Fallo en el Secure Socket Layer (SSL) Unknown SSL error (9318)

 Forum

Fallo en el Secure Socket Layer (SSL) Unknown SSL error (9318)

This question is answered

Hello! I try to execute this code:

DEFINE VARIABLE hSocket       AS HANDLE    NO-UNDO. 
DEFINE VARIABLE cPort         AS CHARACTER NO-UNDO INITIAL "443". 
DEFINE VARIABLE lStatus       AS LOGICAL   NO-UNDO. 
DEFINE VARIABLE cSocketString AS CHARACTER NO-UNDO. 
DEFINE VARIABLE cHost         AS CHARACTER NO-UNDO INITIAL "productores.segurossura.com.ar". 

ASSIGN cSocketString = "-H " + cHost + " -S " + cPort + " -ssl".

CREATE SOCKET hSocket. 
ASSIGN lStatus = hSocket:CONNECT(cSocketString) NO-ERROR. 

IF lStatus THEN 
    MESSAGE "Socket connection OK!" VIEW-AS ALERT-BOX. 
ELSE 
    MESSAGE "Socket connection FAILED!" SKIP ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX. 

hSocket:DISCONNECT() NO-ERROR. 

DELETE OBJECT hSocket.



and i'm get this error:

" ....Fallo en el Secure Socket Layer (SSL). código de error 0: Unknown SSL error (9318) Fallo de conexion para host productores.segurossura.com.ar puerto 443 transporte TCP. (9407)..."

Can anyone help me?

Verified Answer
  • Hello! Thanks for you answer, I found the solution to the problem.

    In Progress 11.7, in the socket connect there is a new parameter: "-servername". In this put the server url and achievement connection. Example:

    cSocketString = "-H " + cHost + " -S " + cPort + " -ssl -servername " + cHost.

    Thanks you all for your help

    --Spanish Versión--

    Encontré la solución al problema. En la versión 11.7 de Porgress, en la sentencia Connect del Socket, existe un nuevo parámetro "servername" en el cual colocando el dominio del servidor destino permite la conexión.

    Gracias a todos por su ayuda

All Replies
  • Did you register the site certificate in the OpenEdge certificate store, with certutil?

    Most SSL issues begins there..

    -- Spanish version --

    La mayoría de los problemas de conexión SSL empiezan con el registro del certificado del servidor en el repositorio de certificados de OpenEdge, lo cual deberías haber hecho con certutil.

    Además siendo un sitio de Argentina (más aún, de una compañía de seguros de argentina) no me extrañaría que el certificado no sea "del todo correcto", en múltiples sentidos, lo cual agrega complejidad a la conexión.

    Es probable que si se trata de una versión "vieja" de OpenEdge (para los estándares internacionales me refiero), tengas que especificar el protocolo y cifrado a utilizar para la conexión.

    Suerte.

    David.

  • What version of OE are you running?
     
     
    Brian Maher
    Principal Engineer, Technical Support
    Progress
    Progress
    14 Oak Park | Bedford, MA 01730 | USA
    phone
    +1 781 280 3075
     
     
    Twitter
    Facebook
    LinkedIn
    Google+
     
     

  • I tested in 11.3 , 11.6 and 11.7

  • Si, registré los certificados pero sigo obteniendo el mismo error.
    "...Es probable que si se trata de una versión "vieja" de OpenEdge (para los estándares internacionales me refiero), tengas que especificar el protocolo y cifrado a utilizar para la conexión...." --> Con respecto a esto también probé de la siguiente manera (pero no estoy seguro de si es la forma correcta):

    -- English Version --

    Yes, I registered the certificates but I still get the same error.
    "...Es probable que si se trata de una versión "vieja" de OpenEdge (para los estándares internacionales me refiero), 
    tengas que especificar el protocolo y cifrado a utilizar para la conexión
    ...." --> I also tried it in the following way
    (but I'm not sure if it's the correct way):

    DEFINE VARIABLE hSocket       AS HANDLE    NO-UNDO. 
    DEFINE VARIABLE cPort         AS CHARACTER NO-UNDO INITIAL "443". 
    DEFINE VARIABLE lStatus       AS LOGICAL   NO-UNDO. 
    DEFINE VARIABLE cSocketString AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cHost         AS CHARACTER NO-UNDO INITIAL "productores.segurossura.com.ar". 
    DEFINE VARIABLE cProtocols    AS CHARACTER NO-UNDO INITIAL "TLSv1".
    DEFINE VARIABLE cCiphers      AS CHARACTER NO-UNDO INITIAL "AES128-SHA,RC4-SHA,DES-CBC3-SHA,DES-CBC-SHA,EXP-DES-CBC-SHA".
    
    ASSIGN cSocketString = "-H " + cHost + " -S " + cPort + " -ssl -sslprotocols " + cProtocols + " -sslciphers " + cCiphers. 
    
    CREATE SOCKET hSocket. 
    ASSIGN lStatus = hSocket:CONNECT(cSocketString) NO-ERROR. 
    
    IF lStatus THEN 
        MESSAGE "Socket connection OK!" VIEW-AS ALERT-BOX. 
    ELSE 
        MESSAGE "Socket connection FAILED!" SKIP ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX. 
    
    hSocket:DISCONNECT() NO-ERROR. 
    
    DELETE OBJECT hSocket.

    Pero sigue sin funcionar.

    -- English Version --

    But it still does not work.

  • The code seems ok.

    Did you try with a plan wget ?

    Doing a wget should work, if not, then the problem is not at your end.

  • Hello! Thanks for you answer, I found the solution to the problem.

    In Progress 11.7, in the socket connect there is a new parameter: "-servername". In this put the server url and achievement connection. Example:

    cSocketString = "-H " + cHost + " -S " + cPort + " -ssl -servername " + cHost.

    Thanks you all for your help

    --Spanish Versión--

    Encontré la solución al problema. En la versión 11.7 de Porgress, en la sentencia Connect del Socket, existe un nuevo parámetro "servername" en el cual colocando el dominio del servidor destino permite la conexión.

    Gracias a todos por su ayuda