Цитата ES:
Используя сертификат, браузер отправляет зашифрованные сообщения службе.
Служба читает эти сообщения, расшифровывая их при помощи закрытого ключа, который соответствует сертификату. »
|
Там всё гораздо сложнее, но принцип верно уловлен.
Цитата ES:
А где служба хранит этот закрытый ключ? »
|
В месте, для неё доступном. Вы же сами упоминали выше, что есть два файла – user.crt и user.key. Первый сертификат, второй – его ключ. Может они интегрируются в какое-то своё хранилище службы – мне неизвестно. Например, у java свой keyring.
Цитата ES:
И откуда он берется этот закрытый ключ? »
|
Его генерируешь ты, при помощи утилиты, посредством сложного алгоритма на базе генератора псевдослучайных чисел. Обычно используется неоднократно упомянутая утилита openssl. Вы ту микростатью на хабре прочитали, что я давал?
Первый шаг - генерируешь ключ.
Второй, если создаёшь корневой сертификат – создаёшь его при помощи только что сгенерированного ключа. На этом всё для этой пары.
Если сертификат не корневой, то создаёшь запрос на подпись при помощи своего ключа и передаёшь его (запрос, Certificate Signing Request, CSR) в центр сертификации. Там его подписывают и выдают тебе готовый сертификат. Само собой, в случае самоподписного сертификата, в роли центра сертификации высутпаешь ты сам со своим корневым сертификатом.