ekapusta / oauth2-esia

Authenticate in ESIA and get authenticated individual personal information
MIT License
67 stars 48 forks source link

Can not read private key #21

Open PiVirus opened 2 years ago

PiVirus commented 2 years ago

Доброго времени коллеги! Есть такая проблема, всю голову сломал, перепробовал кучу способов и ничего не помогает. Не читает openssl_pkey_get_private зараза приватный ключ, возвращает постоянно false. В переменной $keyContent сидит строка: string(160) "-----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY-----, но ни как не обрабатывается, прямо перед вызовом openssl_pkey_get_private проверил, что в переменной. Пробовал указывать .key, .pem, строка приходит но ни как не проходит. Пробовал на разных версиях php: 7.4 8.0 и везде одно и тоже. Что ему нужно? Сертификат и ключи выданы в 2021 году. Буду благодарен любой помощи и подсказке.

garex commented 2 years ago

Наверное ключ гостовый, а читаете её пхпой, у которой опенссл не в курсе про гост.


Alexander Ustimenko +7 (952) 918-02-20

ср, 22 июн. 2022 г. в 18:15, PiVirus @.***>:

Доброго времени коллеги! Есть такая проблема, всю голову сломал, перепробовал кучу способов и ничего не помогает. Не читает openssl_pkey_get_private зараза приватный ключ, возвращает постоянно false. В переменной $keyContent сидит строка: string(160) "-----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY-----, но ни как не обрабатывается, прямо перед вызовом openssl_pkey_get_private проверил, что в переменной. Пробовал указывать .key, .pem, строка приходит но ни как не проходит. Пробовал на разных версиях php: 7.4 8.0 и везде одно и тоже. Что ему нужно? Сертификат и ключи выданы в 2021 году. Буду благодарен любой помощи и подсказке.

— Reply to this email directly, view it on GitHub https://github.com/ekapusta/oauth2-esia/issues/21, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAATBHKNLINW6QAAILKCIFLVQLYUBANCNFSM5ZP2SEGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

PiVirus commented 2 years ago

Наверное ключ гостовый, а читаете её пхпой, у которой опенссл не в курсе про гост. __ Alexander Ustimenko +7 (952) 918-02-20 ср, 22 июн. 2022 г. в 18:15, PiVirus @.>: Доброго времени коллеги! Есть такая проблема, всю голову сломал, перепробовал кучу способов и ничего не помогает. Не читает openssl_pkey_get_private зараза приватный ключ, возвращает постоянно false. В переменной $keyContent сидит строка: string(160) "-----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY-----, но ни как не обрабатывается, прямо перед вызовом openssl_pkey_get_private проверил, что в переменной. Пробовал указывать .key, .pem, строка приходит но ни как не проходит. Пробовал на разных версиях php: 7.4 8.0 и везде одно и тоже. Что ему нужно? Сертификат и ключи выданы в 2021 году. Буду благодарен любой помощи и подсказке. — Reply to this email directly, view it on GitHub <#21>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAATBHKNLINW6QAAILKCIFLVQLYUBANCNFSM5ZP2SEGA . You are receiving this because you are subscribed to this thread.Message ID: @.>

PiVirus commented 2 years ago

Закрыл не специально. Да забыл добавить же что ключи от Крипто Про конвертированные, вытащены ключи разными способами в разных форматах. Что можно предпринять или мне не подходит данное решение? Я так понимаю, на данном этапе, указанный remoteSigner не влияет на результат

garex commented 2 years ago

Если ключи от криптопро, то 146% гостовые.

Из коробки никакой опенссл не умеет в гост. Ни обычный, ни тот, который в пхп.

Настройте свою сборку опенссля и используйте сигнеры, которые через cli на вашу сборку будут ходить.


Alexander Ustimenko +7 (952) 918-02-20

ср, 22 июн. 2022 г. в 19:54, PiVirus @.***>:

Закрыл не специально. Да забыл добавить же что ключи от Крипто Про конвертированные, вытащены ключи разными способами в разных форматах. Что можно предпринять или мне не подходит данное решение? Я так понимаю, на данном этапе, указанный remoteSigner не влияет на результат

— Reply to this email directly, view it on GitHub https://github.com/ekapusta/oauth2-esia/issues/21#issuecomment-1163062228, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAATBHLRO2MRXWJI2XJ7UUDVQMEKBANCNFSM5ZP2SEGA . You are receiving this because you commented.Message ID: @.***>

PiVirus commented 2 years ago

Прочитав кучу мануалов, я так и поступил, только собрать свою сборку толком не вышло, нашел в сети готовую OpenSSL-1.1.1h_win32 с поддержкой gost engine. Вот на неё указал в пути 'remoteSigner' => new OpenSslCliJwtSigner(DIR.'/OpenSSL-1.1.1h_win32'). Наверное я делаю не правильно и так же не правильно интерпритирую мануалы, а может просто криворукий :( И в общем результат, не может прочитать приватный ключ.

nucleargen commented 2 years ago

бесплатный пакет от cryptopro для linux вам в помощь. Пишем свою обертку над консольной утилитой cryptcp и используем в качестве подписанта для есиа

injitools commented 2 years ago

бесплатный пакет от cryptopro для linux вам в помощь. Пишем свою обертку над консольной утилитой cryptcp и используем в качестве подписанта для есиа

это где бесплатный раздают?

Zegerfor commented 1 year ago

@PiVirus смогли решить проблему? Как с вами связаться? У меня ровно такая же ситуация