OT. Obtener certificado desde PHP en archivo .key.pem

412 views
Skip to first unread message

Julián May

unread,
Mar 27, 2015, 7:13:48 PM3/27/15
to vfp-factura-ele...@googlegroups.com
Hola buen día.

Colegas se que este foro es para VFP pero una pregunta . sobre PHP ya que algunos colegas tienen su solución en php

Resulta que estoy tratando de obtener el certificado.  

$buff = $pathOpenSSL." x509 -inform DER -outform PEM -in {cerFile} -pubkey -out {tempFile}.cer.pem";

$buff = str_replace("{cerFile}", $archivoCER, $buff); 
$buff = str_replace("{tempFile}", $tempFile, $buff);

// Se abre el archivo y se escrive lo que se tiene en la variable $buff.
fwrite($GLOBALS['HandleFile'], $buff);

// Se ejecuta el .bat y te devuelve un archivo.
$output = shell_exec($batFile);
// Se cierra el archivo esto es para que al eliminar el archivo te permita php si no te marcará warning por que tiene abierto el archivo.
fclose($GLOBALS['HandleFile']); 

Aquí obtengo un archivo .cer.pem  

-----BEGIN CERTIFICATE-----
MIIE2jCCA8KgAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDAyOTMwDQYJKoZIhvcNAQEF
BQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2Vy
dmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0Fk
bWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkw
JwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UE
CQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAw
MQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UE
BwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2Vs
aSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEyMTAyNjE5MjI0M1oXDTE2MTAyNjE5MjI0
M1owggFTMUkwRwYDVQQDE0BBU09DSUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwg
RElTVFJJVE8gREUgUklFR08gMDA0IERPTiBNQVJUSU4gMWEwXwYDVQQpE1hBU09D
SUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwgRElTVFJJVE8gREUgUklFR08gMDA0
IERPTiBNQVJUSU4gQ09BSFVJTEEgWSBOVUVWTyBMRU9OIEFDMUkwRwYDVQQKE0BB
U09DSUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwgRElTVFJJVE8gREUgUklFR08g
MDA0IERPTiBNQVJUSU4gMSUwIwYDVQQtExxBQUQ5OTA4MTRCUDcgLyBIRUdUNzYx
MDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsT
CFNlcnZpZG9yMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlrI9loozd+UcW
7YHtqJimQjzX9wHIUcc1KZyBBB8/5fZsgZ/smWS4Sd6HnPs9GSTtnTmM4bEgx28N
3ulUshaaBEtZo3tsjwkBV/yVQ3SRyMDkqBA2NEjbcum+e/MdCMHiPI1eSGHEpdES
t55a0S6N24PW732Xm3ZbGgOp1tht1wIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsG
A1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEAuoPXe+BBIrmJn+IGeI+m97Ol
P3RC4Ct3amjGmZICbvhI9BTBLCL/PzQjjWBwU0MG8uK6e/gcB9f+klPiXhQTeI1Y
KzFtWrzctpNEJYo0KXMgvDiputKphQ324dP0nzkKUfXlRIzScJJCSgRw9ZifKWN0
D9qTdkNkjk83ToPgwnldg5lzU62woXo4AKbcuabAYOVoC7owM5bfNuWJe566UzD6
i5PFY15jYMzi1+ICriDItCv3S+JdqyrBrX3RloZhdyXqs2Htxfw4b1OcYboPCu4+
9qM3OV02wyGKlGQMhfrXNwYyj8huxS1pHghEROM2Zs0paZUOy+6ajM+Xh0LX2w==
-----END CERTIFICATE-----

Con está información 

Ahora bien al querer leer ese archivo y almacenar la información en una variable me trunca el contenido.

$temppem = __DIR__."\\".$tempFile.".cer.pem";
$oCert = file($temppem);

Ya intente de varias manera obtener el contenido y siempre me devuelve 1024 caracteres equivalente a 1MB de información al parecer tengo que modificar algo en configuración eh buscado por google y nada no eh encontrado nada concreto. 
Siempre obtengo esto de todas las maneras que eh intentado, linea por linea, o con fread etc. 
Alguien tuvo este inconveniente ?.

-----BEGIN CERTIFICATE-----
MIIE2jCCA8KgAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDAyOTMwDQYJKoZIhvcNAQEF
BQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2Vy
dmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0Fk
bWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkw
JwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UE
CQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAw
MQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UE
BwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2Vs
aSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEyMTAyNjE5MjI0M1oXDTE2MTAyNjE5MjI0
M1owggFTMUkwRwYDVQQDE0BBU09DSUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwg
RElTVFJJVE8gREUgUklFR08gMDA0IERPTiBNQVJUSU4gMWEwXwYDVQQpE1hBU09D
SUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwgRElTVFJJVE8gREUgUklFR08gMDA0
IERPTiBNQVJUSU4gQ09BSFVJTEEgWSBOVUVWTyBMRU9OIEFDMUkwRwYDVQQKE0BB
U09DSUFDSU9OIERFIEFHUklDVUxUT1JFUyBERUwgRElTVFJJVE8gREUgUklFR08g
MDA0IERPTiBNQVJUSU4gMSUwIwYDVQQtExxBQUQ5OTA4MTRCUDcgLyBIRUdUNzYx
MDAzNFMyMR4wHAYDVQQFE


Julián May

unread,
Mar 30, 2015, 10:22:18 AM3/30/15
to vfp-factura-ele...@googlegroups.com
Buen día colegas.

Ya está solucionado no había error simplemente que en el XDebug no te muestra todo el contenido de la variable y pues me iba más por el resultado que veía en el debugueador, simplemente imprimí la variable y apareció completo y listo.
Por si algún le sucede algo parecido no pensé que suceda tal inconveniente no se si es un bug del XDebug o de por sí no muestra todo el contenido de las variables, objetos, etc.



Gracias
Saludos.

Reply all
Reply to author
Forward
0 new messages