Назад | Перейти на главную страницу

Самоподписанный сертификат с общедоступным и частным IP-адресом (Tomcat 7)

Я настраиваю сервер с общедоступным и частным IP-адресом. У него нет связанных доменных имен.

Использование самозаверяющего сертификата для доступа к указанному ниже URL-адресу работает правильно:

    https://<PUBLIC IP>:8443

Однако, когда я пытаюсь получить доступ к этому серверу, используя его частный IP-адрес:

    wget https://<PRIVATE IP>:8443

Я получаю следующую ошибку:

ОШИБКА: невозможно проверить сертификат, выданный '/ C =? / ST =? / L =? / O =? / OU =? / CN = Unknown': обнаружен самоподписанный сертификат. ОШИБКА: общее имя сертификата "Неизвестно" не соответствует запрошенному имени хоста "". Чтобы подключиться к небезопасному, используйте `--no-check-certificate '.

Есть ли способ указать в конфигурации, что должны приниматься как общедоступные, так и частные IP-адреса?

Я также попытался включить несколько коннекторов в server.xml, содержащий атрибут адреса, но это не сработало.

Я думаю, у вас здесь две фундаментальные проблемы. Во-первых, в то время как Windows (насколько мне известно) реализует центральный механизм хранения и проверки сертификатов, который приложения обычно вызывают (например, для проверки сертификата SSL), все приложения UNIX работают самостоятельно. То, что работает один браузер, не означает другой браузер или wget, будет - а что будет делать PHP-скрипт - полная загадка и полностью зависит от рассматриваемой библиотеки.

Во-вторых, вы решили использовать SSL-сертификат, который включает IP-адрес вместо имени хоста, и мы было проблемы делаю это раньше, вокруг этих частей.

Мое собственное мнение таково, что не следует использовать квалифицированное время, чтобы продолжать попытки заставить эту стратегию работать. Вместо этого зарегистрируйте доменное имя - они почти ничего не стоят и обычно их легче набирать, чем IP-адреса - и настройте DNS с разделением горизонта, чтобы внутренние клиенты получали внутренний адрес, а внешние клиенты - внешний. Это удаляет обе ваших проблем одним махом.

Похоже, вы пытаетесь получить доступ к серверу как из Интернета (используя NAT), так и из внутренней локальной сети (напрямую), и это причина, по которой вы используете два IP-адреса. Если это так, посмотрите на аналогичную ситуацию и как сделать свой сервер доступным по общедоступному IP-адресу как из Интернета, так и из локальной сети:

Статический NAT Cisco не работает на стороне LAN

и таким образом избежать беспорядка с сертификатами. (Ищите решение со вторичным IP.)