you can get public key using openssl_pkey_get_details(resource $key ) function:
<?php
$pub_key = openssl_pkey_get_public(file_get_contents('./cert.crt'));
$keyData = openssl_pkey_get_details($pub_key);
fule_put_contents('./key.pub', $keyData['key']);
?>
openssl_pkey_export
(PHP 4 >= 4.2.0, PHP 5)
openssl_pkey_export — Gets an exportable representation of a key into a string
Description
openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference).
Note: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.
Parameters
- key
-
- out
-
- passphrase
-
The key is optionally protected by passphrase .
- configargs
-
configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs .
Return Values
Returns TRUE on success or FALSE on failure.
openssl_pkey_export
09-Aug-2004 12:47
Warning, this function is NOT capable of exporting PEM-encoded public keys. It can only export private keys.
