Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03

[Duda]Como convertir a DER

La libreria OpenSSL es la mas usada para generar el sello digital, independientemente del lenguaje aqui encontraras informacion de como usar la libreria
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

[Duda]Como convertir a DER

Mensajepor eduardoaap » Mar May 31, 2011 11:21 am

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!!!

Avatar de Usuario
Dado
Mensajes: 15838
Registrado: Mar Jul 06, 2010 7:56 pm

Re: [Duda]Como convertir a DER

Mensajepor Dado » Mar May 31, 2011 12:01 pm

Esos archivos YA ESTAN en formato DER

Talvez quieras decir convertirlos a PFX o P12 o PEM.......revisa bien tus especificaciones.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

Re: [Duda]Como convertir a DER

Mensajepor eduardoaap » Mar May 31, 2011 3:46 pm

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!!!

Avatar de Usuario
Dado
Mensajes: 15838
Registrado: Mar Jul 06, 2010 7:56 pm

Re: [Duda]Como convertir a DER

Mensajepor Dado » Mar May 31, 2011 6:01 pm

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.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

hrzio
Mensajes: 2
Registrado: Dom Dic 19, 2010 4:21 pm

Re: [Duda]Como convertir a DER

Mensajepor hrzio » Mié Jun 01, 2011 9:43 pm

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

Código: Seleccionar todo

getBytes
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

eduardoaap
Mensajes: 27
Registrado: Vie Feb 04, 2011 10:15 am

Re: [Duda]Como convertir a DER

Mensajepor eduardoaap » Lun Jun 06, 2011 3:01 pm

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!!!


Volver a “OpenSSL en general (cualquier lenguaje)”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados