# SSL\_VERIFYHOST y SSL\_VERIFYPEER en xmlhttprequest

**URL:** <https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364>\
**Category:** Velneo\
**Created:** [2 Marzo, 2017 09:05 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364 "2017-03-02T09:05:36Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [2 Marzo, 2017 09:05 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/1 "2017-03-02T09:05:36Z")

</div>

Buenos días

Estoy desarrollando la conexión a un webservice de un proveedor y no consigo hacer la llamada. En soporte del proveedor me dicen que la llamada es correcta, pero que segurmanete no tenga desactivado CURLOPT\_SSl\_VERIFYHOST o CURLOPT\_SSL\_VERIFYPEER. La url a la que tengo que hacer la peticion es de la forma [https://extranet.proveedor.com/api/pedidoWeb](https://extranet.proveedor.com/api/pedidoWeb)…

La verdad es que no tengo ni idea de donde tengo que poner esas opciones. El código que estoy utilizando es muy sencillo:

```auto
importClass("XMLHttpRequest");

var cURL = theRoot.varToString("XHR_URL")
var lAsincrono = false

var xhr = new XMLHttpRequest()
xhr.timeout = 15000
xhr.responseType = ""

xhr.open("POST", cURL, lAsincrono, "", "");

xhr.send()

theRoot.setVar("XHR_SALIDA", xhr.response)
theRoot.setVar("_NERROR", xhr.errorCode)
theRoot.setVar("_NSTATUS", xhr.status)

```

Gracias y un saludo

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [2 Marzo, 2017 09:35 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/2 "2017-03-02T09:35:37Z")

</div>

Hola Gonzalo.

Esas son [opciones](https://curl.haxx.se/libcurl/c/easy_setopt_options.html) de la librería Curl.  
Seguramente en soporte del webservice han supuesto que estás usando esta librería con código PHP.  
Esas opciones tienen que ver con la negociación SSL entre cliente y servidor.

Prueba a realizar la conexión usando una línea de comando de la [librería Curl](https://curl.haxx.se/) para comprobar que tu equipo negocia correctamente la conexión segura.

Parece ser que la clase XMLHttpRequest del API de Velneo tiene sus peculiaridades respecto a las conexiones seguras y los certificados TSL/SSL.

Ante la falta de documentación y buenos ejemplos, no te queda más remedio que acudir a Soporte.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [2 Marzo, 2017 13:37 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/3 "2017-03-02T13:37:20Z")

</div>

Me han confirmado en soporte que xmlhttprequest nenesita un https válido. Me han dicho que con curl sí puedo deasctivar la comprobación. Me he descargado el tutor de vcurl y cuando lo ejecuto me da un error.

“No se ha podido cargar la libreria Nombre: vCurlDll.dll ID: VCURL\_W”

¿Alguien tiene algún ejemplo de un post realizado con curl?

Ya he comprobado que desde la línea de comandos me funciona la llamada.

Gracias y un saludo

---

<div class="post-metadata">

**Author:** ![manuel.rd](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/manuel.rd/32/3508_2.png) [@manuel.rd](https://foros.velneo.com/u/manuel.rd)\
**Post date:** [2 Marzo, 2017 20:26 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/4 "2017-03-02T20:26:55Z")

</div>

Seguramente el error es por que tienes un cliente de 64bits contra la librería de 32bits.

Podrías usarlo por comandos y solventas el impedimento de los bits.

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [3 Marzo, 2017 08:28 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/5 "2017-03-03T08:28:22Z")

</div>

Buenos días

El problema era que tenía que copiar las librerías de curl a la carpeta de Windows. De todas formas, la solución tampoco me sirve porque la conexión con el proveedor se hace con una tarea programada en el vServer y ahí no puedo hacer uso de librerías externas.

Al final me va a tocar tener un cliente que se ejecute periódicamente y haga la conexión mediante curl. Creo que, en este caso, voy a optar por utilizar curl en línea de comandos.

Un saludo

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [3 Marzo, 2017 08:39 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/6 "2017-03-03T08:39:13Z")

</div>

Hola de nuevo

Con respecto al uso de curl a través de la línea de comandos. ¿Tiene alguien un ejemplo de como recibir la respuesta en Velneo del resultado de curl?

Se me ocurre llamar a curl con la instrucción “Lanzar aplicación” o “Ejecutar documento”, pero no se como recibir la respuesta en Velneo.

¿Alguna idea?

Gracias y un saludo

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [3 Marzo, 2017 10:12 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/7 "2017-03-03T10:12:19Z")

</div>

Hola Gonzalo.

- Para obtener la salida del comando curl en un fichero necesitas incluir la opción -o “\<path\_fichero\_salida\>”

- Para la conexión SSL sin verificación de certificado necesitas incluir la opción -k

- Usa el comando de Velneo “Ejecutar comando del sistema”

[Aquí tienes](https://curl.haxx.se/docs/manpage.html) toda la información de las opciones de la línea de comandos de la utilidad curl.exe.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [3 Marzo, 2017 10:40 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/8 "2017-03-03T10:40:21Z")

</div>

Muchas gracias Paco

Redirijo la salida de curl a un fichero con la opcion que me has dicho y luego simplemente abro el fichero y lo parseo.

Un saludo

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [3 Marzo, 2017 10:51 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/9 "2017-03-03T10:51:44Z")

</div>

Hola Gonzalo.

Sí, efectívamente.

Lo que devuelve el comando cUrl (html, json, xml, …) queda guardado en el fichero que has indicado.  
Contiene lo mismo que tendríamos en la propiedad responseText de la clase xmlHttpRequest del API de Velneo.

Si te atrancas con algo puedo preparar un ejemplo.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![gontorre](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/gontorre/32/5728_2.png) [@gontorre](https://foros.velneo.com/u/gontorre)\
**Post date:** [3 Marzo, 2017 11:49 UTC](https://foros.velneo.com/t/ssl-verifyhost-y-ssl-verifypeer-en-xmlhttprequest/9364/10 "2017-03-03T11:49:33Z")

</div>

Gracias Paco

Ya lo tengo funcionando.

Me sirve la experiencia para cuando tenga que ponerme (en breve) a diseñar el sistema de intercambio de información con la AEAT.
