Avalados por :

Solución al error de conexión a webservice SSL con B1if y átomo Call HTTP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Loading...

Hola a todos,

Versión de B1if: 1.19.3

Necesito hacer una conexión a un webservice ssl.

Para esto utilizo el átomo Call HTTP, porque así puedo controlar el payload completo (encabezado + cuerpo) del mensaje soap.

Importé el certificado en un almacén de confianza que configuré en el centro de control.

Después de ejecutar la llamada, obtengo el siguiente error:


<Payload Role="C" id="atom2" statusNo="HTTP" statusMsg="" reference="atom3" sysid="" payload="atom3" throwException="false">
  <http.header />
     <httaError xmlns="urn:com.sap.b1i.xcellerator:upltdoc" HTTPcode="" HTTPmsg="">
       <exceptionMsg>javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure</exceptionMsg>
       <returnData />
  </httaError>
  </Payload>

Mi configuración de conexión es la siguiente (omití la información sensible por supuesto)


<connect>
  <destProtocol>https</destProtocol>
  <destHost>myenv.myhost.com</destHost>
  <destPort>443</destPort>
  <destPath>mypath/sub</destPath>
  <query />
  <proxyHost>myproxy.net</proxyHost>
  <proxyPort>8080</proxyPort>
  <method>post</method>
  <authentification>none</authentification>
  <user />
  <password />
  <user2query />
  <password2query />
  <trustStoreURI>com.sap.b1i.vplatform.directory/System/truststore.jks</trustStoreURI>
  <keyStoreURI /> </connect>

El xml del payload es muy básico, solo una solicitud para iniciar sesión en el webservice y obtener un token de regreso.


<payload>
- <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
- <s:Header>
  <Action xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none" s:mustUnderstand="1">https://mycompleteurl.com</Action> 
  </s:Header>
- <s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <login xmlns="https
                
                
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

2 Respuestas

0
Loading...

¡Hola Bastian!

¡Sí! ¡Funciona ahora!

Una cosa que necesité agregar fue el certificado que recibí del proveedor. Lo agregué al almacén de confianza Tomcat.jks y luego funcionó...

Muchas gracias por la ayuda.

Saludos,

Joeri

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Loading...

Hi Joeri,


La siguiente descripción establece una conexión de handshake SSL entre el Cliente y el Servidor.

El cliente (B1iF) se identifica utilizando trustStoreURI y el servidor está definido por el keyStoreURI, donde el certificado debe ser cargado .

¿Ya has cargado el archivo .keystore en B1if BizStore para usarlo como trustStore?

.keystore tiene un certificado autofirmado del servidor B1i y se puede encontrar en <B1i-Installation folder>\Tomcat\webapps\B1iXcellerator

Para cargar el archivo, por favor utiliza el B1i Control Center -> Mantenimiento -> BizStore Upload :

    • Configuraciones de Tipo de Carga = bpm.pltype=jks
    • Nombre de Archivo = .keystore
    • BizStore-URI = /com.sap.b1i.vplatform.directory/Certificates/Tomcat(unified)

Presiona "Enviar" y verifica el archivo cargado a través de B1i Control Center -> Configuración -> Administrador de Certificados seleccionando el BizStore-URI elegido.

El alias utilizado es "tomcat". La contraseña necesaria para ver "Detalles Adicionales" se encuentra en <B1i-Installation folder>\Tomcat\conf\server.xml.

Para tu certificado externo, por ejemplo *.pfx, por favor utiliza el mismo método de carga con las siguientes Configuraciones de Tipo de Carga: bpm.pltype=pfx.

Ahora puedes utilizar ambos certificados como keyStore y trustStore completando los siguientes parámetros en tu carga xslt:


<connect>
<!--la sección de conexión es opcional - también puedes definir una referencia al sld-->
<destProtocol>https</destProtocol>
<destHost>tu host</destHost>
<destPort>443</destPort>
<destPath>tu ruta</destPath>
<query></query>
<proxyHost>tu webproxy</proxyHost>
<proxyPort>tu puerto de proxy web</proxyPort>
<method>POST</method>
<authentification>x509</authentification>
<user>usuario de tu certificado externo</user>
<password>contraseña de tu certificado externo</password>
<user2query></user2query>
<password2query></password2query>
<trustStoreURI> /com.sap.b1i.vplatform.directory/Certificates/Tomcat.jks</trustStoreURI>
<keyStoreURI>/com.sap.b1i.vplatform.directory/Certificates/<externalCertificate>.pfx</keyStoreURI>
</connect>

Saludos cordiales

Bastian

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?