servidor - Administrador de API wso2 | Cómo asociar un certificado de cliente al punto final de back-end/destino
servidor backend (1)
tenemos un backend de api que necesita que se presente el certificado de cliente al acceder a la API. hemos agregado el certificado del cliente a repository / resources / security / client-truststore.jks y junto con todos los CA de CA y los Certificados Intermedios. Servidor reiniciado
Creo que Wso2 ahora puede enviar call to backend API y regresa con el código de estado 403. regresa con 403 porque la API del backend no recibió el certificado del cliente con solicitud ...
{
"timestamp": "2017-03-14T21:33:36.523Z",
"status": 403,
"error": "Forbidden",
"message": "Access Denied",
"path": "/registrations"
}
cuando ejecutamos backend directamente desde el servidor con certificado, funciona bien:
curl -k --cert /tmp/client.pem:changeit -X POST https://10.7.64.36:8443/registrations -H "Content-Type: application/json" -d "{/"primaryAccountNumber/": /"12122121212/"}"
obtenemos una respuesta válida de vuelta:
{"registration_id":null,"transaction_id":null,"authentication_code":null,"qr_code_image":null,"registered":null,"status":null,"score":null,"reason_codes":[]}
Entonces, ¿cómo se está enviando curl --cert a petición de cómo hacer eso en el gestor de aps wso2, por favor asesorar cómo asociar certificado de cliente a la url de backend ... para que sea enviado por wso2 api-manager y back-end será capaz de procesar la solicitud.
gracias.
Para ssl mutuo, puede consultar la siguiente publicación de blog.
http://ishara-cooray.blogspot.com/2016/07/how-to-secure-your-backend-services-and.html
Aquí está la parte importante de la publicación del blog.
Configurar API Manager para habilitar perfiles dinámicos de SSL
Para configurar APIM para perfiles SSL dinámicos para el remitente de transporte HHTPS, debe crear un nuevo archivo XML /repository/deployment/server/multi_ssl_profiles.xml (esta ruta es configurable) y copiar la configuración siguiente en él. Esto configurará client-truststore .jks como Trust Store para todas las conexiones a 10.100.5.130:9443
<parameter name="customSSLProfiles"> <profile> <servers>10.100.5.130:9443</servers> <TrustStore> <Location>repository/resources/security/client-truststore.jks </Location> <Type>JKS</Type> <Password>wso2carbon</Password> </TrustStore> </profile> </parameter>
Para habilitar la carga dinámica de esta configuración, agregue las configuraciones siguientes a la configuración del Remitente de transporte (PassThroughHttpSSLSender) del Administrador de API ({AM_HOME} /repository/conf/axis2.xml). Establezca la ruta del archivo como parámetro "filePath".
<parameter name="dynamicSSLProfilesConfig"> <filePath>repository/deployment/server/multi_ssl_profiles.xml</filePath> <fileReadInterval>3600000</fileReadInterval> </parameter> <parameter name="HostnameVerifier">AllowAll</parameter>
Ahora, tanto el servicio de fondo como el ESB están configurados para usar tiendas de claves predeterminadas y API Manager está configurado para cargar perfiles SSL dinámicos. Reinicie el Administrador de API. Mostrará a continuación el mensaje en la consola que confirma que las configuraciones dinámicas se cargaron.
La configuración personalizada de ClientConnFactoryBuilderSSLProfiles se carga desde la ruta: