Página 1 de 1
[Duda]Como convertir a DER
Publicado: Mar May 31, 2011 11:21 am
por eduardoaap
Lo que pasa es que estoy desarrollando un clienteWebService y para el método cancelar me piden el miLlave.key y el miCertificado.cer pero en formato DER, pero la verdad no encuentro como convertir ambos archivos a DER, espero que alguien me pueda ayudar.
De antemano gracias!!!
Re: [Duda]Como convertir a DER
Publicado: Mar May 31, 2011 12:01 pm
por Dado
Esos archivos YA ESTAN en formato DER
Talvez quieras decir convertirlos a PFX o P12 o PEM.......revisa bien tus especificaciones.
Re: [Duda]Como convertir a DER
Publicado: Mar May 31, 2011 3:46 pm
por eduardoaap
Este método de cancelar es del PAC solucionfactible, yo le mando el certificado tal cual lo tengo es un archivo.cer pero me devuelve el siguiente error: "Ocurrió un error al cargar el certificado, verifique que sea un certificado digital válido", lo que hago es lo siguiente:
Código: Seleccionar todo
String cert = "path/del/cert/miCert.cer";
String key = "path/del/ket/miKey.key";
InputStream certFile = new FileInputStream(cert);
InputStream keyFile = new FileInputStream(key);
//Primero pide usuario, despues contraseña, depues el UUID a cancelar, el certificado y el key en byte[]
solucionFactible.cancelar("usuario", "pass", "UUID", getBytes(certFile), getBytes(KeyFile));
public static byte[] getBytes(InputStream is) throws IOException{
int len;
int size = 1024;
byte[] buf;
if (is instanceof ByteArrayInputStream) {
size = is.available();
buf = new byte[size];
len = is.read(buf, 0, size);
} else {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
buf = new byte[size];
while ((len = is.read(buf, 0, size)) != -1) {
bos.write(buf, 0, len);
}
buf = bos.toByteArray();
}
return buf;
}
¿Estoy haciendo algo mal?... Espero que me puedan ayudar, de antemano gracias!!!
Re: [Duda]Como convertir a DER
Publicado: Mar May 31, 2011 6:01 pm
por Dado
Total que no va a ser a PFX ni a PEM....je je je
En tu codigo lo estas enviando como un arreglo de bytes pero eso no esta bien, debe ser en base64, convierte tu certificado y tu key a base64 y asi envialo, te lo digo con 100% de certeza porque yo asi lo tengo programado y funciona.
Re: [Duda]Como convertir a DER
Publicado: Mié Jun 01, 2011 9:43 pm
por hrzio
Yo no he tenido problema para usar el método que recibe array de bytes pero, ¿Estás seguro de que estás leyendo completamente el archivo .cer y que está en formato DER, tal como te lo entregó el SAT?
Te propongo simplificar el código de tu función
a lo siguiente:
Código: Seleccionar todo
public static byte[] getBytes(InputStream is) throws IOException{
byte[] buf = new byte[is.available()];//reservar el espacio necesario para leer el .cer
is.read(buf);//leer el InputStream
return buf;//retornar el array de bytes lleno
}
Para verificar que el certificado se encuentre en un formato correcto puedes usar openssl:
Código: Seleccionar todo
openssl x509 -in certificado.cer -inform DER -noout -text
esto te debe mostrar la información del certificado
Espero pruebes y nos comentas cómo te fue
Re: [Duda]Como convertir a DER
Publicado: Lun Jun 06, 2011 3:01 pm
por eduardoaap
Gracias a sus respuestas, lo que pasa es que el proceso estaba correcto, el problema fue que me habían cambiado los archivos.
Saludos y gracias!!!