Как создать строку, которая является действительным закрытым ключом PEM?

Для частного сертификата PEM я предполагаю, что вам нужна строка, подобная этой:

-----BEGIN PRIVATE KEY-----
YzNhYjhmZjEzNzIwZThhZDkwNDdkZDM5NDY2YjNjODk3NGU1OTJjMmZhMzgzZDRhMzk2MDcxNGNhZWYwYzRmMg==
-----END PRIVATE KEY-----

Итак, что я сделал:

$privateKey = '-----BEGIN PRIVATE KEY-----';
$privateKey .='\n'.base64_encodehash(('sha256','foobar'));
$privateKey .='\n-----END PRIVATE KEY-----';

Но openssl_pkey_get_private ($ privateKey) возвращает false и не является допустимым ресурсом. Я предположил, что PEM это просто строка base64. Что я сделал не так? (Я нашел это через Google: http://www.cryptosys.net/pki/manpki/pki_pemstring.html)

1

Решение

Существуют разные форматы PEM для разных типов объектов. На первый взгляд, PEM — это просто закодированные в base 64 данные, заключенные в маркеры BEGIN и END. Файлы PEM, начинающиеся с маркеров «BEGIN PRIVATE KEY», содержат данные в кодировке base64, соответствующие стандарту PKCS # 8. В частности, см. Раздел 5 RFC5208 (https://tools.ietf.org/html/rfc5208). Обычно вы не создавали бы эти файлы с нуля, а использовали бы какую-то библиотеку или инструмент для этого (например, OpenSSL).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]