Как реализовать клиент-серверное взаимодействие с собственным удостоверяющим центром сертификации?

Я только начинаю разбираться в вопросах безопасного взаимодействия программ, шифрования и т.д. Пока пытаюсь понять смысл в общем, схему...

Необходимо обеспечить защищенную от прослушивания и несанкционированного доступа связь в клиент-серверном приложении. Планируется, что клиент и сервер будут взаимодействовать с помощью WebSocket`ов. Нашел, что в таких случаях используется протокол TLS. Одной из проблем, которые решает этот протокол, является безопасный обмен ключами между удаленными клиентом и сервером по открытому каналу. В википедии вычитал, что при установке соединения важным участником является удостоверяющий центр сертификации. Собственно, надежность всей этой схемы основана на доверии к этому удостоверяющему центру, за что удостоверяющий центр берет деньгу.

Дальше я буду использовать термин цифровой сертификат. Не уверен, что я понимаю его правильно, поэтому напишу как я понимаю его. Цифровой сертификат - это открытый ключ+ссылка на удостоверяющий центр. Плюс сертификат подписан удостоверяющим центром (зашифрован приватным ключом удостоверяющего центра, а публичный ключ удостоверяющего центра общеизвестен: видимо в виде подписанного собой же сертификата).

В моем случае я имею доступ к клиенту и к серверу. Удостоверяющий центр сертификации это, я так понимаю, некая программа. Я, так понимаю, я могу запустить ее на своем сервере (ну или на другом каком, но в данном случае на том же).

Теперь вопросы:
1. Насколько понимаю, при настройке веб-сервера в конфигах указывается каким приватным ключом шифровать и какой сертификат отдавать. Как указать браузеру(клиенту), что нужно для общения вон с тем сервером использовать вот этот сертификат и как передать серверу сертификат?
2. Знаю в браузере можно настроить список доверенных серверных сертификатов. Соответственно, как настроить на веб-сервере список доверенных клиентских сертификатов? И как настроить доступ (с этим сертификатом можно только вот тут смотреть, а с этим еще и вот тут и писать еще что-нибудь)?

Прошу прощения, если напутал с терминами или вообще тут каша написана. Распутайте меня, чтоб больше ясности появилось. Спасибо.
  • Вопрос задан
  • 419 просмотров
Пригласить эксперта
Ответы на вопрос 1
DmitryITWorksMakarov
@DmitryITWorksMakarov Автор вопроса
Я подозреваю вот решение на мой вопрос. Пока вопрос формулировал, уже понял что нужно гуглить...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы