|
Contenido/contents: Introducion Llave privada Llave publica | Pagina anterior/Previous page |
| Introduccion | |
|---|---|
| Para los que todavia no tengan el famoso anexo 20 del diario oficial del 1 de septiembre del 2004 lo pueden obtener aqui. El Anexo 20 empieza en la pagina 135 y termina en la pagina 160. | |
| En la pagina informacion a detalle sobre Comprobantes fiscales Didigitales del SAT esta una presentacion en PowerPoint fechada en Febrero del 2005 fea_fe.ppt donde en la diapositiva 58 "Un par de Notas Sobre Llaves" mecionan que la llave privada esta en con el standard PKCS8 en formato DER. | |
| Desafortunadamente los algoritmos PHP de OpenSSL requieren que este en formato PEM. | |
| Llave privada | |
|---|---|
| Ademas esta el 'problema' de la contraseña, se puede escribir la contraseña en el codigo PHP pero queda muy a la vista, o se le puede quitar la contraña al archivo. Yo opte por esto ultimo. | |
$ openssl pkcs8 -inform DER -in AAA010101AAA_0408021316S.key -out AAA010101AAA.key.pem Enter Password: $ | |
| Este programa pide la contraseña para poder abrir la llave y la convierte al formato PEM ya sin la contraseña. Tambien le podemos mandar la contraseña como parte del comando para poderlo automatizar. contraseña. | |
$ openssl pkcs8 -inform DER -in AAA010101AAA_0408021316S.key -out AAA010101AAA.key.pem -passin pass:Empresa1 $ | |
| Podemos ver el contenido del archivo porque ya esta en formato base64. | |
$ cat AAA010101AAA.key.pem -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDArCo5om1eOPsVVkgG57X0VZI+Y/kqSRRqtOVBGj8rKx38nYjH VqAkKS4sYRsvLtXI+1courEksbrhYxkYJOc1rqm6uyWSIbrtwhSStoETa2/+3Zsv tGYakQARhlPm6Pqyj6DjiNZrMW8JjtSehr4grd17Aub6L3wv28tkHvIizwIDAQAB AoGBALxMReQXws0v4OsEbNYaw++rZYaGC+/whfyXF+pdLVkSBXdpulAeb9mHSXHj 4T5mhlaqlI7gjdkvvVUilVbMUgypGYr8D7tw+cIw4dY59T+iYJP4ohu0/9QxT61z LaxCDWz1oQSWrqVrC2YeBMZlUMqoj60qhZuN/nMLuMlf69s5AkEA6gDl7P8sgMk5 ur0BIpDDsAiXS0GwbrbKg+b9Ha7OAG+8rMG4K8oTSNXsZESLrN2ZcLzr08Xp/GIv 8qZzWoT17QJBANLIq6mQKXjPYX9PYvFB4voQJ2uBzARbT+9IBEki9IeBoa+8KMlh XatepWNnWN+EGFu25K+TYimWvW/alL81pCsCQQDGsbyKYKIJONQsHBC6qPGAp8rP vBdz6wJKvfhvG98Pv9EVX+hiRlPZpMv0179CKWgAsmoMiCEGjNjp0Sxh0ESBAkEA jrmCQxZyfnMtuV6vyFysrFYz2v/QfUK3JXbGMB+TJA4KxUvK8lETc+5qXpyj+PUg 6Tk2MAzD8xU2wH5pKe/QcQJAEYsi0vjsIzcIOaCRRPA+H0kOEgx4wPZmKNrLNGru gBIUpRlCzi6zGAhq3KVosQeqp0TAg9aSREW+Jux6nYJigA== -----END RSA PRIVATE KEY----- | |
| Como mencione, este certificado ya esta sin contraseña, si se quiere en formato PEM pero con la contraseña se ejecuta este otro comando que la solicita y encripta la llave privada. | |
$ openssl rsa -in AAA010101AAA.key.pem -des3 -out conllave.key.pem writing RSA key Enter PEM pass phrase: Verifying - Enter PEM pass phrase: | |
| Este archivo en formato PEM tambien tiene el contenido en formato base64 pero esta cifrado con el metodo 3DES por lo cual solo se puede usar para firmar si se proporciona la contraseña correcta. | |
$ cat conllave.key.pem -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,40B029D5AE25EDB0 n/giCSQ/F91Zn1sAfdx8qO6fNNHYIJijtTUWABCrP9t8B/WLXkdhpOE4f/8pq1mc NesOY6/wIwWxOOilBXjcOFUuvJAIys6M6YXhVt5i3efU5NxdfLHGcUtMh2sQnVia X1c094aMONYtVXOfTphWnSIwillGIIRaDkwZXV8T1dxt4X0uzXM7EFTYi6cYE9Ok 3931+ehoRUN8wPqblZpCVqaM14m71nI9VC7PYe72Dhu/62B/PHl5uX551KV0ABHv rn1rycdsz0c+ynu1No2Hx0MacP//QzRjHkfhKbHCJEOHCSQIRQw8noU035cXmG3O zMoxZFgPpZPSbBYK/F3xtcqos+Zfp9neE9d/K/LHUC2W2YRl9bMZV3xcV9jArqJ4 3pL4Q6qwF8XG2Qeu1kUBtkOXqmUNa+6y7FaPCPbjS3sBXKBc+Ysgei2KWSmRDNR6 urulvRNhtfTJzLM52KlvAjg6rj8O+YFaErz8fJ2TiDDBiUdcKMLbH1uADe+aZyEt LvshfAtyl7lKpdWxCro6wfCvkt95YRvQa1JILV6eVnhu5CZWtc3hjCaJuiSTvkjK fxXaZWLNC9L2Du+xR4ceBk4L1BSu6k6up1nlTqctj9znRJ5BdkOdxkNhCbU9MI65 TthIFHkRAjHZUsJx79EhsLPH1lh9VPMxgNdYTr9OuYC+ro9pKinHsGnbQIkCOEkt OSKwelU94DrOcpzIvqIeV4dxxCHPHLaeLUN13w3mLX0vtbLKb8Ml0CkTjzFBYA4H DmgS3duVXUnPO4GDxcn+ZrXPDdBCqMW1nFG0BVgsBwuwd4v5LvgCtw== -----END RSA PRIVATE KEY----- | |