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?
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
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.
|
||||
Brian Maher
|
||||
Principal Engineer, Technical Support
|
||||
Progress
|
||||
14 Oak Park | Bedford, MA 01730 | USA
|
||||
|
||||
|
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