openssl_pkey_export
openssl_pkey_export($key, &$output, $passphrase = null, $options = null)
Zapisuje klucz prywatny do zmiennej jako tekst w formacie PEM (-----BEGIN PRIVATE KEY-----). Z hasłem dodatkowo go szyfruje. Z powrotem wczytuje go openssl_pkey_get_private(). Zwraca true.
Parametry
- $key – klucz prywatny.
- &$output – tu zostanie zapisany PEM.
- $passphrase – hasło do zaszyfrowania klucza (zalecane).
- $options – jak przy
openssl_pkey_new()(na przykładconfig).
Przykłady
$key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
var_dump(openssl_pkey_export($key, $pem, "key-password")); // bool(true)
echo substr($pem, 0, 37); // -----BEGIN ENCRYPTED PRIVATE KEY-----
// wczytać z powrotem z hasłem
$loaded = openssl_pkey_get_private($pem, "key-password");
echo openssl_pkey_get_details($loaded)["bits"]; // 2048
var_dump(@openssl_pkey_get_private($pem, "zle")); // bool(false)
Na co uważać
- W Windows eksport potrzebuje pliku
openssl.cnf(wpisuconfig), tak samo jakopenssl_pkey_new(). - Plik z kluczem zapisz poza katalogiem głównym strony i z prawami tylko dla użytkownika serwera WWW.
- Klucza publicznego nie eksportuje – ten zwraca
openssl_pkey_get_details()["key"].
Powiązane funkcje:
openssl_pkey_new()
openssl_pkey_get_details()
openssl_sign()
file_put_contents()