Проверка сертификата TLS/SSL
Я новичок в TLS/SSL, так что это может быть очень простой вопрос, но я много искал и не мог найти ответ.
Я пытаюсь реализовать клиент TLS/SSL. Этот клиент будет работать на встроенном устройстве с ОС Windows (XPe или WES7). Моя реализация использует GnuTLS.
Как я могу получить список доверенных лиц для моего устройства, чтобы мой клиент мог проверить сертификат сервера? Это должен быть файл, хранящийся на стороне клиента, который клиент отвечает за актуальность? Или мой клиент может каким-то образом получать этот список из Интернета каждый раз, когда он нужен, и не поддерживать его локально?
2 ответа
Основные сертификаты Центра сертификации (ЦС) хранятся на стороне клиента, и клиент отвечает за их актуальность. Поддерживать их в актуальном состоянии не так сложно, как кажется, поскольку сертификаты CA не меняются так часто - большинство из них действительны в течение 5-10 лет.
Хранение на стороне клиента необходимо, поскольку любой данный интернет-сайт, используемый вашим приложением, может быть скомпрометирован.
Чтобы получить список, вы можете начать с просмотра сертификатов CA, распространяемых с помощью браузера, или файла cacerts, распространяемого с Java. Перед выпуском кода вы, вероятно, захотите проверить подлинность используемых вами сертификатов, сравнив их с информацией, предоставленной центром сертификации.
Перейдите на любой компьютер с Windows и запустите "certman.msc" из командной строки. Экспортируйте каждый сертификат CA (промежуточные сертификаты, доверенные органы) в файл (BER, PEM), затем импортируйте эти сертификаты во встроенное программное обеспечение. Теперь вы можете проверять сертификаты электронной почты так же, как это делает Windows (т. Е. Используя различные RFC и CRL, связанные с x.509).