¿Existe la posibilidad de generar un java.security.cert.X509Certificate desde un byte []?¿Generar certificado X509 desde byte []?
40
A
Respuesta
58
Sure.
Los objetos de certificado se pueden crear con una instancia de CertificateFactory, en particular, una configurada para crear certificados X509. Esto se puede crear así:
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
Luego debe pasar un InputStream que contenga los bytes del certificado. Esto puede lograrse envolviendo su matriz de bytes en un ByteArrayInputStream:
InputStream in = new ByteArrayInputStream(bytes);
X509Certificate cert = (X509Certificate)certFactory.generateCertificate(in);
-1
InputStream stream = null;
byte[] bencoded = javax.xml.bind.DatatypeConverter.parseBase64Binary(x509CertificateStr);
try {
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
cert = (X509Certificate) certFactory.generateCertificate(stream);
} catch (java.security.cert.CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+0
La pregunta no menciona base-64 y falta la inicialización de 'stream'. Este código arrojará una 'NullPointerException'. – EJP
Cuestiones relacionadas
- 1. ¿Es posible generar un certificado X509 programáticamente utilizando solo C#?
- 2. Solicitud con certificado X509
- 3. ¿Cómo validar el certificado X509?
- 4. x509 C# ejemplos?
- 5. Ruby Generar certificado autofirmado
- 6. x509 verificación de certificado en C
- 7. Guardar certificado X509 en un archivo
- 8. Java X509 Certificado de análisis y validación
- 9. Crear certificado x509 con la herramienta openssl/makecert
- 10. Convertir byte de certificado [] en X509Certificate en Java
- 11. Android - convertir cadena de certificado pkcs12 en objeto de certificado x509 para bks keystore
- 12. Crear mediante programación el certificado X509 utilizando OpenSSL
- 13. Tienda X509 Certificado en la base de datos
- 14. generar certificado MDM
- 15. rsacryptoserviceprovider usando certificados x509 C#
- 16. ¿Cómo obtengo el Certificado X509 enviado desde el cliente en el servicio web?
- 17. ¿Cómo crear un certificado X509 en Java sin BouncyCastle?
- 18. Obtener clave privada del Certificado BouncyCastle X509? C#
- 19. ¿Hay alguna manera de imprimir bastante un certificado X509?
- 20. Solicitudes SOAP en Ruby con certificados X509
- 21. C# ¿Cómo puedo validar una cadena de certificado Root-CA-Cert (x509)?
- 22. Cómo utilizar makecert para crear un certificado X509 aceptado por la WCF
- 23. Crear StringBuilder desde el byte []
- 24. Validar certificados X509 con Java APis
- 25. Cómo firmar el token X509 usando WCF
- 26. ¿Cómo generar el certificado de openssl con caducidad de menos de un día?
- 27. Cómo determinar el tipo de certificado desde el archivo
- 28. Número de serie X509 usando java
- 29. Java - Byte [] a byte []
- 30. ¿Cómo generar un certificado de cliente SSL desde una red desconectada?
Gracias por su respuesta. Pero estoy obteniendo "(java.security.cert.CertificateException) java.security.cert.CertificateException: No se pudo analizar el certificado: java.io.IOException: entrada vacía" en la última línea. InputStream no está vacío, pero arroja la excepción – 0bj3ct
. Lo mismo me sucedió al principio porque no estaba pensando cuidadosamente sobre lo que estaba haciendo. En mi caso fue porque estaba tratando de hacer lo anterior con los bytes de un almacén de claves en lugar del certificado en el almacén de claves. Extraer el certificado del almacén de claves, obtener los bytes codificados y luego trabajar en ellos fue lo que hizo que esta respuesta anterior funcionara para mí. –
En mi caso, el problema era que el byte [] estaba codificado en base 64 ... El mensaje de error era la "entrada vacía" ligeramente engañosa. Tal vez ayuda a alguien en algún momento ... – riskop