cancel
Showing results for 
Search instead for 
Did you mean: 

Problema con certificado en PI: Peer certificate rejected by ChainVerifier

Former Member
0 Kudos

Estoy trabajando en un escenario rfc to soap en PI 7.1, y tengo que conectarme a unos web services externos mediante https. Para ello he configurado los canales receiver soap usando un certificado digital previamente instalado en el servidor.

El certificado es un archivo pfx, con el que he podido conectarme sin problemas a dichos web servicesy mediante la aplicación soapui, (y al instalarlo en el navegador de internet también se tiene acceso a los mismos). Sin embargo al intentar la comunicación a través del canal rcv soap de PI se produce el siguiente error :

Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException:
iaik.security.ssl.SSLCertificateException: Peer certificate rejected by ChainVerifier

Por lo que he investigado el error indica que el certificado no está verificado por una entidad certificadora. En principio se instaló en la Keystore View Default, para más tarde instalarlo en TrustedCAs siguiendo en lo posible la nota 694290 (aunque no es específica para al 7.1) pero sin éxito.

Necesitaría alguna indicación sobre cómo instalar dicho certificado para la versión 7.1 de PI, o las posibles causas del error.

Muchas gracias.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Bueno por lo que me comentas y entiendo, entonces es PI el que está rechazando el certificado del servidor destino por que le faltan las CAs ¿no? Yo pensaba que era al contrario y que estaban rechazando mi certificado.

Aquí dejo una imagen donde se ve el detalle del certificado del servidor al que me estoy conectando, visto con el firefox:

detalle certificado.

Ahí aparecen una jerarquía de 3 certificado. ¿Debo importar las 3 o sólo las 2 primeras (que se suponen que son las CAs)?

Muchas gracias por la ayuda, espero que con esto ya lo consiga

iprieto
Contributor
0 Kudos

Hola Eduardo,

Estamos llegando al final del asunto, comprueba que CA falta en el keystore TrustedCA e instalalo en ese keystore. Otra forma de conseguirlas es instalandolas en el almacen de claves de windows de tu máquina local y a continuación exportandolas a fichero, el fichero que exportes será el que instales.

Un saludo

Ivá

iprieto
Contributor
0 Kudos

Hola Eduardo,

¿Pudiste resolver el problema?

Saludos

Answers (4)

Answers (4)

Former Member
0 Kudos

Bueno finalmente me dieron un usuario con permisos y en 10 minutos estaba solucionado. Efectivamente metiendo los certificados de las CAs en TrustedCAs funciona sin ningún problema.

Muchísimas gracias, has sido de una gran ayuda.

iprieto
Contributor
0 Kudos

Hola Eduardo,

¡¡¡¡ Enhorabuena !!!! Me alegro que lo hayas resuelto..

Un saludo

Ivá

Former Member
0 Kudos

Finalmente pude solucionar lo de la firma cambiando el código fuente un poco. La verdad no sé exáctamente cuál era el fallo pero probablemente tenía que ver con la instanciación de clases estáticas de las librerías que estoy usando. Puedes ver la solución en el último mensaje del [hilo en el foro de PI|;.

Gracias por el interés como siempre.

Lo del certificado aún estoy a la espera... a ver si me dan permisos para que meta mano yo directamente ;).

Saludos.

Former Member
0 Kudos

Hola Iván,

Aún estoy con ello. El problema mes que no soy administrador del PI en el que tengo el problema y no puedo aplicar nada por mí mismo, así que estoy a la espera de que lo hagan o me den permisos para ello. Cualquier cosa te cuento.

Mientras tanto estoy intentando solucionar un problema que tengo con la firma digital, ya que me falla el programa de mapeo java en PI... (la primera ejecución tras reiniciar el servidor funciona, y después ya no), cuando en las pruebas fuera de PI funciona bien. Si puedes echarle un vistazo por si se te ocurre algo te estaría agradecido [;

Saludos y gracias de nuevo.

iprieto
Contributor
0 Kudos

Mal asunto Eduardo,

Me da la sensación de que el que problema que se está produciendo en la parte del Java Mapping es un problema de dificil solución, aunque es probable que te pueda ayudar.

He estado viendo que la última versión de SAP está teniendo problemas cuando haces re-deploy de aplicaciones, en tu caso seguramente sea algo referente a esto, aunque no te lo puedo asegurar.

Lo primero que tienes que hacer es ver los logs de Java dentro del Netweaver Administrator, seguramente sea problema de referencias del classloader de la máquina virtual. Por favor, revisa esto y me cuentas que error se está produciendo. No me vale el log del ESR.... necesito el log Java del Log Viewer.

Otra cosa que podría ser, es que dejes algo abierto, la lectura del certificado con el que firmas en el keystore, algún fichero, streams, ..., no se. Intenta hacer close a todos los objetos que tengas dentro del código del Java Mapping.

Echaré un vistazo al post ...

Un saludo

Ivá

iprieto
Contributor
0 Kudos

Hola Eduardo,

Llo único que tienes que hacer es insertar las CAs dentro del almacén Trusted CAs. Hay veces que necesitas el reinicio de la parte J2EE para que coja el cambio. Las Trusted CAs tienen que ser las del servidor al que quieres conectar.

Te adjunto un documento que escribí con un colega de trabajo donde explicamos el handshake SSL para que lo entiendas mejor. http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/60ff2883-70c5-2c10-f090-a744def2ba66

Un saludo y suerte

Ivá

Former Member
0 Kudos

Hola Ivan, gracias de nuevo por responder.

He echado un vistazo al documento que me indicas y tengo varias dudas.

En primer lugar veo que indicas que se debe configurar el servicio SSL en el ICM. ¿Esto es necesario incluso para cuando nuestro servidor va a actuar de cliente, o sólo cuando haga el rol de servidor?

En segundo lugar, en tu documento dices como generar un certificado de servidor no firmado (unsigned server certificate). Yo sin embargo ya tengo un certificado en un fichero pfx. ¿Es necesario que siga esos pasos o simplemente debo importar mi fichero? (y en ese caso en qué Keystore View).

El siguiente paso que veo en tu documento sería crear el certificado firmado por una CA. ¿Sabes cómo puedo saber si el certificado que yo tengo en mi pfx está ya firmado o no por una CA?

El último paso es importar igualmente el certificado de la CA con la que hemos firmado nuestro certificado (corrígeme si me equivoco). Con esto es supongo a lo que te refieres en tu respuesta a "insertar las CAs dentro del almacén Trusted CAs", Sin embargo no entiendo bien lo que quieres decir con "Las Trusted CAs tienen que ser las del servidor al que quieres conectar".

¿Quieres decir las CA que el servidor destino ha usado para firmar su propio certificado?

¿Hay alguna forma de saberlo o me tengo que poner en contacto con quien administre el servidor destino?

De nuevo muchas gracias por las respuestas, estás siendo una grandísima ayuda.

iprieto
Contributor
0 Kudos

Hola Eduardo,

Creo que no me he explicado bién. Vamos por partes:

- En el documento lo único que quería que entendieras es el tema de la comunicación SSL y como és el diálogo entre cliente y servidor. En este caso el cliente eres tú (SAP J2EE) y el servidor es el lugar donde vas a consumir el servicio web. No tienes que configurar nada en el ICM.

- Si tienes un certificado no hace falta que crees ningún certificado.

- Seguramente te han pasado el certificado del servidor donde está el servicio web, lo que tienes que hacer es coger las CAs que tienes en el certificado e instalarlo en TrustedCA keystore.

Efectivamente tienes que instalar las CAs del servidor de destino dentro del keystore TrustedCA. Yo para hacer esto hago lo siguiente, me conecto con un navegador a la dirección https que te han dado, vas a ver el certificado, ruta de certificación y las CAs que tienen son las que tienen que instalar. Si las CAs no son oficiales y son generadas por el proveedor se las tienes que pedir a ellos, en caso contrario, si por ejemplo son de Verisign y es un certificado oficial, puedes descargarlas del site de Verisign. En un principio existen las principales entidades de certificación instaladas por defecto en el J2EE.

Un saludo y espero seguir siendo de ayuda,

Mucha suerte

Ivá