Для создания пары ключей:
<?php
/* Create the private and public key */
$res = openssl_pkey_new();
/* Extract the private key from $res to $privKey */
openssl_pkey_export($res, $privKey);
/* Extract the public key from $res to $pubKey */
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];
?>
Чтобы сохранить ключ в целевом файле:
file_put_contents($file, $key);