Сертификат SSL без имени хоста в нем

Я реализовал веб-сервис с аутентификацией сервера и аутентификацией клиента с помощью keytool. Проблема состоит в том, что эта аутентификация не работает, если я не включаю название хоста в ней. Например:

keytool -genkey -alias myAlias -keyalg RSA -keypass myPassword -storepass myPassword -keystore my.keystore -dname "CN=myhost"

Но мне не нужно, и мне не нравится проверка хостом или IP. Есть ли какой-либо способ избежать его?

Спасибо.

5
задан sinuhepop 9 March 2010 в 11:17
поделиться

3 ответа

Как часть требований SSL, сертификат CN соответствует имени хоста, к которому вы подключаетесь. Если CN не совпадает, браузер будет считать, что вы подключаетесь к неправильному хосту и объекту.

Нет никакого способа обойти это.

8
ответ дан 18 December 2019 в 13:13
поделиться

Стандартная логика такова: если вам не нужно защищать свои данные, не используйте SSL. Если вам действительно нужно защитить его, вам нужно знать, к какому хосту вы подключаетесь. Промежутков быть не должно.

Однако в некоторых внутренних средах у вас может быть достаточно контроля над сетью и конфигурацией, чтобы не беспокоиться.

В последнем случае решение зависит от используемых вами клиентских библиотек. Если вы используете HTTP-клиент, прочтите руководство по настройке SSL . Возможно, вам не нужно реализовывать свой собственный SecureProtocolSocketFactory , а можно просто использовать EasySSLProtocolSocketFactory .

1
ответ дан 18 December 2019 в 13:13
поделиться

Смысл использования SSL / TLS заключается в том, чтобы клиент мог быть уверен, что он подключается к правильной службе, а не к какой-то фиктивной службе, которая пытается выдать себя за настоящий. Если (гипотетически) сертификат сервера не должен содержать любая информация, идентифицирующая хост, клиент, если сервер, с которым он вел переговоры, был правильным.

Фактически, вам действительно нужна проверка с помощью объявления DNS оденьтесь, потому что, если вы этого не сделаете, ваша проверка SSL будет бесполезной. (Или, по крайней мере, нигде так безопасно, как могло бы быть.)

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

2
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

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