Después de ver la documentación de MatrixSSL, asumo que:
- Como es agnóstico de la capa de transporte, no podrá (y no podrá) recuperar los certificados intermedios faltantes por sí mismo. Para hacer esto, tendría que tener algún tipo de cliente HTTP (tal vez con soporte de proxy) y no puedo ver nada documentado.
- Tampoco comprobará por sí mismo que el nombre de host coincida con el certificado. Necesita agregar su propio certValidator para hacer esto. Si no verifica el nombre de host en el certificado, aceptará cualquier certificado firmado por una CA de confianza para un host arbitrario, lo que lo dejará abierto a los ataques de intermediarios. Eso significa que la implementación de esto es una obligación, a menos que necesite verificar solo algunos certificados fijos (es decir, la fijación de certificados).
- La API contiene funciones para el manejo de CRL, pero requiere que el desarrollador proporcione el CRL en sí. Tiene la función de obtener la URL para la CRL pero el desarrollador que tiene que recuperar los datos de la URL por sí mismo.
- No hay una API documentada para OCSP. Dado que OCSP requiere acceso a HTTP y que MatrixSSL es independiente del transporte, se puede suponer que no realizará búsquedas de OCSP por sí mismo y tampoco le dará al desarrollador la información necesaria para realizar búsquedas de OCSP.
Al final, se trata de la seguridad que obtiene de OpenSSL, es decir, no hay verificación de nombre de host, solo CRL manual, no hay API documentada para OCSP (aunque hay una API no documentada pero bastante compleja en OpenSSL).
Ya que está utilizando MatrixSSL solo para su propia aplicación personalizada, le recomendaría que sea sencillo y seguro aceptando solo algunos certificados específicos que usted controla y que están codificados dentro de la aplicación. En este caso, no necesitaría las cosas más complejas como el nombre de host o las verificaciones de revocación.