Una aplicación de comercio electrónico multiusuario utiliza certificados con formato .pem para encriptar los botones de paypal, hasta ahora la generación de certificados se havenido haciendo desde la consola de Linux con los comandos de openssl.
Hasta ahora funciona todo muy bien, pero es un prceso muy engorros tener que estar generano los certificados desde la termina, queremos que los usuarios puedan generar sus certificados desde su panel de administrador que esta hecho todo en PHP.
Encontré el script que pongo a continuación que me genera el certificado:
Cita:
La salida de este script me genera tres bloques<?
$dn = array("countryName" => 'MX', "stateOrProvinceName" => 'State', "localityName" => 'SomewhereCity', "organizationName" => 'MySelf', "organizationalUnitName" => 'Whatever', "commonName" => 'mySelf', "emailAddress" => '[email protected]');
$privkeypass = '1234';
$numberofdays = 365;
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
openssl_x509_export($sscert, $publickey);
openssl_pkey_export($privkey, $privatekey, $privkeypass);
openssl_csr_export($csr, $csrStr);
echo $privatekey; // Will hold the exported PriKey
echo $publickey; // Will hold the exported PubKey
echo $csrStr; // Will hold the exported Certificate
?>
$dn = array("countryName" => 'MX', "stateOrProvinceName" => 'State', "localityName" => 'SomewhereCity', "organizationName" => 'MySelf', "organizationalUnitName" => 'Whatever', "commonName" => 'mySelf', "emailAddress" => '[email protected]');
$privkeypass = '1234';
$numberofdays = 365;
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
openssl_x509_export($sscert, $publickey);
openssl_pkey_export($privkey, $privatekey, $privkeypass);
openssl_csr_export($csr, $csrStr);
echo $privatekey; // Will hold the exported PriKey
echo $publickey; // Will hold the exported PubKey
echo $csrStr; // Will hold the exported Certificate
?>
Cita:
A manera de prueba, copié todo el bloque -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- y lo pego en un archivo de texto con la extensión .crt-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----
Luego voy a la cuenta de paypal e intento subir el certificado, pero PaypaL me dice que el archivo no está en formato .pem
Cita:
LA verdad no tengo mucha experiencia co las funciones de ssl de PHP y por eso recurro a ustedes, si alguien puede darme algo de luz lo agradezco desde ahora.The certificate you are trying to upload is not in the proper format. The certificate must be in .pem format.
Saludos.