Autenticación mutua entre dos servicios con el mismo certificado en la misma máquina
Tengo un servicio de arranque de primavera simple ( service A) que tiene una API REST expuesta. Para agregar compatibilidad con https, utilicé el mismo certificado que se emite para otro servicio ( service B) presente en el mismo cuadro. Aquí está mi archivo application.properties
server.ssl.enabled=true
server.ssl.client-auth=need
server.ssl.key-store=keystore.jks
server.ssl.key-store-password=password
server.ssl.key-store-type=JKS
server.ssl.trust-store-password=password
server.ssl.trust-store=keystore.jks
server.ssl.trust-store-type=JKS
Esto parece funcionar cuando la conexión service Ase realiza desde un cliente que no lo es service B. Activé la autenticación mutua entre servicios para que se valide el certificado del cliente. Cuando se realiza una solicitud de Ba A, obtengo un error
javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate
at sun.security.ssl.Alert.createSSLException(Alert.java:131)
at sun.security.ssl.Alert.createSSLException(Alert.java:117)
Después de habilitar la depuración ssl, encontré que este error estaba causando esto
upcoming handshake states: server finished[20]
*** Certificate chain
<Empty>
***
https-jsse-nio-8090-exec-4, fatal error: 42: null cert chain
Verifiqué y volví a verificar que el almacén de claves y el almacén de confianza estén configurados correctamente, pero no tuve suerte. ¿Hay alguna manera de hacer que esto funcione si el servidor y el cliente tienen el mismo certificado? Aprecio cualquier sugerencia sobre cómo puedo hacer que funcione (con el mismo certificado) ya que he estado luchando con esto durante una semana.
Respuestas
¿Su JKS contiene toda la cadena? Si miras dentro, ¿tienes toda la cadena hasta el certificado raíz?
El error le dice que no puede encontrar la cadena. ¿Su certificado probablemente esté autofirmado? o su JKS no tiene la cadena completa.
Vea una pregunta similar de Stackoverflow : CamelJettyWebSocketServer, error fatal: 42: cadena de certificados nulos