Validar que el certificado no sea la FIEL

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia

Validar que el certificado no sea la FIEL

Notapor Halcon Divino » Dom Jul 01, 2012 9:47 am

Estoy tratando de validar que el certificado no sea la FIEL dentro del XML

Lo poco que he podido encontrar es lo siguiente
1. Extractar el contenido del atributo certificado
2. hay que parcear el contenido en formato X509.
3. validarque no exista la extensión “nsCertType”.

Mi duda es en el punto 3 como le hago para validar si exite o no la extensión “nsCertType”.
Que instrución de OpenSSl uso ?? o Que se usa para esto ???

Saludos

Halcón Divino.
Halcon Divino
 
Mensajes: 73
Registrado: Vie Nov 25, 2011 5:12 pm

Re: Validar que el certificado no sea la FIEL

Notapor RickAlanis » Dom Jul 01, 2012 12:26 pm

Para que esto funcione, primero debes tener el certificado en formato PEM:

Código: Seleccionar todo
OpenSSL x509 -inform DER -outform PEM -in certificado.cer -pubkey -out certificado.pem

Luego, utilizas:

Código: Seleccionar todo
openssl x509 -text -noout -in certificado.pem


El parámetro -noout hace que el resultado aparezca en StdOut.

Aparece mucha información en forma de texto. Analízala, tanto para una FIEL como para un CSD.

En la información que obtienes de la FIEL, aparece un campo que dice "Netscape Cert Type" o "nsCertType", mientras que en CSD (Certificado para el sello) no aparece. Supongo que esa es la forma de validarlo.

¡Saludos!
RickAlanis
 
Mensajes: 273
Registrado: Jue Ago 04, 2011 9:41 pm

Re: Validar que el certificado no sea la FIEL

Notapor Halcon Divino » Dom Jul 01, 2012 1:58 pm

Gracias por tu respuesta .... Siempre muy oportuna ...

Ya lo intente pero me marca este error.....Te anexo el contenido del archivo certificado en formato PEM que estoy usando a menos que me digas este mal formateado ... er archivo se llama DadoCert.txt

Al usar la instrucción me marca ete error

C:\OpenSSL-Win32\bin>OpenSSL x509 -inform DER -outform PEM -in DadoCert.txt -pub key -out certificado.pem
unable to load certificate
2680:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\as
n1\tasn_dec.c:1319:
2680:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\
crypto\asn1\tasn_dec.c:381:Type=X509

Posiblemente me vas a decir que esta mal el contenido del archivo DadoCert.txt .... Para verificar que no esta nal el archivo DadoCert.txt aplique esta otra instrucción y si jala o se no me marca error y me genera la key publica
C:\OpenSSL-Win32\bin>openssl x509 -in dadocert.txt -pubkey -noout
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrqM2fUs1WteylfWFb+l2VK7xb
PeyRHX88axc1m+ayUcD1Dgu+He2GOxU8/y3T3osLbdL2qBor8we93q27U9UrFtQU
jnZpcvFOELEcy3kEn27k+Ji8bIoAUSZANcTNI6svmDq79Oh1vfvby2e8Y1+WGKjE
P89JkB7LLVCl79htNwIDAQAB
-----END PUBLIC KEY-----



ESTE ES EL CONTENIDO DEL ARCHIVO DadoCert.txt segun yo esta en formato PEM

C:\OpenSSL-Win32\bin>type dadocert.txt
-----BEGIN CERTIFICATE-----
MIIEPTCCAyWgAwIBAgIUMDAwMDEwMDAwMDAxMDAyNTY2NjkwDQYJKoZIhvcNAQEF
BQAwggE2MTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJh
Y2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3Ry
YWNpw7NuIFRyaWJ1dGFyaWExHzAdBgkqhkiG9w0BCQEWEGFjb2RzQHNhdC5nb2Iu
bXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYD
VQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy
YWwxEzARBgNVBAcMCkN1YXVodGVtb2MxMzAxBgkqhkiG9w0BCQIMJFJlc3BvbnNh
YmxlOiBGZXJuYW5kbyBNYXJ0w61uZXogQ29zczAeFw0wOTAzMTAxNTA3MzhaFw0x
MTAzMTAxNTA3MzhaMIHdMSUwIwYDVQQtExxPRE05NTAzMjRWMkEgLyBQRUVDNTUw
NTAzNEE3MR4wHAYDVQQFExUgLyBQRUVDNTUwNTAzSENMUlNSMDcxKDAmBgNVBAoT
H09GRklDRSBERVBPVCBERSBNRVhJQ08gU0EgREUgQ1YxFjAUBgNVBAsTDVVOSURB
RCBNRVhJQ08xKDAmBgNVBAMTH09GRklDRSBERVBPVCBERSBNRVhJQ08gU0EgREUg
Q1YxKDAmBgNVBCkTH09GRklDRSBERVBPVCBERSBNRVhJQ08gU0EgREUgQ1YwgZ8w
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOuozZ9SzVa17KV9YVv6XZUrvFs97JEd
fzxrFzWb5rJRwPUOC74d7YY7FTz/LdPeiwtt0vaoGivzB73erbtT1SsW1BSOdmly
8U4QsRzLeQSfbuT4mLxsigBRJkA1xM0jqy+YOrv06HW9+9vLZ7xjX5YYqMQ/z0mQ
HsstUKXv2G03AgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0G
CSqGSIb3DQEBBQUAA4IBAQAeeoXbgnahbwBlBYpRodEkRcsyoQ2+phrFG+IoY3oT
s+rt/6Z759Pp8JD9ias6uUNjoGuFjp8mSY7F0cxjdZEifnjGayAaZKd+YLtADHo/
XZbNTBU//WZabrcpZEIbxmPqnWx0Pxz0J8aKynqga2jGro4H+3GoxAAo83/qjrdZ
ZQUuym16NkiD8/KJe0CsWQKu8DV7+akZjKnrior6iV0A7sSvokrvtv8jotrGp0nk
tgHd0fLNO8/M0weSiTLtmNl7duqdoH2f++kNv1A7L3R21k0n6EYeN8asOxeUXwVo
1HxVuBlnZe7MtdI6tdG6BjtNO4RdXs9Mv8jbf1N2+mlx
-----END CERTIFICATE-----
C:\OpenSSL-Win32\bin>
Halcon Divino
 
Mensajes: 73
Registrado: Vie Nov 25, 2011 5:12 pm

Re: Validar que el certificado no sea la FIEL

Notapor RickAlanis » Lun Jul 02, 2012 8:33 am

El código OpenSSL que te di debe funcionar para certificados en formato PEM.
Se supone que lo que muestras es correcto.
Yo sólo había probado el código con PEM bien formados, pero si quiero sacar el certificado de un CFD(i) me marca ese error.
¿Qué hice?
a) verificar que no haya Carriage Returns (CR o Char(13)) ni Line Feeds (LF o char(10))
b) no debe traer "BEGIN CERTIFICATE" ni "END CERTIFICATE". Supongo en este caso que ya está bien formado
c) Agrego cada 64 caracteres un line feed
d) Agrego "-----BEGIN CERTIFICATE-----" más line feed al inicio
e) Agrego line feed más "-----END CERTIFICATE-----" más line feed al final.

Y lo guardo en un archivo con extensión ".pem" aunque funciona igual si lo pongo con extensión ".txt".

Así pude validar certificados que vienen en los CFD. Antes me decía "unable to load certificate".

No sé si ese sea tu caso.

Saluos
RickAlanis
 
Mensajes: 273
Registrado: Jue Ago 04, 2011 9:41 pm

Re: Validar que el certificado no sea la FIEL

Notapor Halcon Divino » Lun Jul 02, 2012 10:37 am

Ya realice y verifique cada uno de los puntos que mencionas, del post anterior, para un correcto formato PEM

Ya le intente poniendo mayúsculas, minúsculas, he re generado 5 veces los archivos, he usado 4 diferentes certificados , con extensión txt o con pem con otra versión de openssl y desafortunadamente el resultado es el mismo “””unable to load certificate”””

Dentro de mis múltiples pruebas estoy usando el archivo DadoCert.txt que tu mismo Cubo postaltes hace mas de un año….no se si lo recuerdes … es el de Oficce Depot para verificar el sello digital ….... bueno incluso este archivo que ya esta formateado en PEM me marca el mismo error “””unable to load certificate”””

Para verificar que mi archivo esta correctamente formateado en PEM lo que hago es aplicar esta instrucción:

OpenSSL x509 -noout -in DadoCert.txt –text

El resultado de esta es que me da “”TODA LA INFORMACION “” del certificado.,
por lo que yo supongo que esta correctamente formateado en PEM.


Ahora aplico esta la instrucción que me diste

OpenSSL x509 -inform DER -outform PEM -in Certificado.Pem

Y el resultado es: “””unable to load certificate”””

Te anexo el archivo que estoy usando... que es el mismo que tu posteastes ..si pudieras tomarte un minuto de tu tiempo para descargarlo y probar esta instrucción te lo agradecería.

he igualmente ...Si tienes algun otra idea tambien te lo agradecería.

Saludos
Halcón Divino
Adjuntos
dadocert.txt
(1.52 KiB) 81 veces
Halcon Divino
 
Mensajes: 73
Registrado: Vie Nov 25, 2011 5:12 pm

Re: Validar que el certificado no sea la FIEL

Notapor RickAlanis » Lun Jul 02, 2012 10:59 am

¿Le aplicas el comando "OpenSSL x509 -inform DER -outform PEM -in Certificado.Pem" al DadoCert.txt?

A ver:
DER: Son certificados en formato DER (Whatever that means) ilegible.
PEM: Originalmente "Printable Encoded for Mail" ahora se llama "Privacy-Enhanced Electronic Mail" y se encierra entre "-----BEGIN CERTIFICATE-----" y "-----END CERTIFICATE-----".
El comando de arriba, entonces, sirve para cambiar de formato DER a PEM, pero el certificado de Dado (DadoCert.txt) ya está en formato PEM.

Si le aplico: openssl x509 -text -noout -in DadoCert.txt me aparece toda la info.

Saludos
RickAlanis
 
Mensajes: 273
Registrado: Jue Ago 04, 2011 9:41 pm

Re: Validar que el certificado no sea la FIEL

Notapor Halcon Divino » Lun Jul 02, 2012 11:19 am

Dado

Ya entendí!!!! ....La instruccion siguiente

OpenSSL x509 -inform DER -outform PEM -in DadoCert.txt -pub key -out certificado.pem

Es para traducir o pasar de formato DER a PEM

Disculpa mi ignorancia en openssl ...estoy aplicando las intsrucciones como receta de cocina ...sin analizar que significa cada una de llas.

Mi error es que quiero traducir de PEM a PEM y obiamente me marca el error anterior porque mi archivo de entrada ya esta en formato PEM

OK ya JALO ....GRACIAAAAAASSSSS !!!!!!
Halcon Divino
 
Mensajes: 73
Registrado: Vie Nov 25, 2011 5:12 pm


Volver a XML

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado