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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы