2015-05-21 2 views
1

Кто-нибудь знает, как я могу включить аутентификацию TLS в приложении, запущенном внутри машины AWS Ubuntu.Аутентификация AWS и TLS

В частности, у меня есть машина Ubuntu на AWS под управлением Linux Container (LXC) и LXD (инфраструктура поверх LXC, которая предоставляет REST API для доступа к контейнерам Linux, между прочим). Я сгенерировал сертификат и ключ на хосте Ubuntu с помощью утилиты командной строки LXC. Затем я тестировал, работает ли сертификат локально, запустив команду curl, предоставляющую опции -cert и --key, и все работает нормально. Затем я скопировал сертификат на свои локальные компьютеры (Mac OS X) keyChain и попытался получить доступ к серверу Ubuntu (у которого btw имеет открытую безопасность, разрешает трафик с любого места на любом порту). Это дает мне ошибку: «Этот сервер мог не докажите, что это XXXX. Его сертификат безопасности находится от ip-XXXX ".

Я заметил, что сертификат имеет значение имени DNS в качестве частного IP-адреса, предоставленного машине AWS вместо общедоступного IP-адреса.

Кто-нибудь знает, как я могу получить доступ к моему включенному TLS-приложению внутри машины AWS Ubuntu извне, в общедоступную сеть?

Пожалуйста, дайте мне знать, если что-то непонятно, и я был бы рад предоставить более подробную информацию.

+0

Просьба уточнить, какие IP-адреса имеют два экземпляра X.X.X.X на вашем стенде вопроса. –

+0

Итак, X.X.X.X является «общедоступным IP-адресом» машины AWS Ubuntu, тогда как ip-X.X.X.X является «частным IP-адресом» машины AWS Ubuntu. – Anuj

+0

Спасибо. Вы ищете регулярную проверку подлинности TLS, а не аутентификацию клиента - аутентификация клиента идет в другом направлении. Я соответствующим образом отредактировал ваш вопрос и вскоре дам ответ. –

ответ

1

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

Решение прост: сгенерируйте сертификат безопасности с альтернативным именем объекта (SAN), который является внешним IP-адресом, а не внутренним IP-адресом. Внешние клиенты будут видеть IP-адрес сертификата как соответствующий адресу, к которому они обратились.

+0

Спасибо Уоррену. К сожалению, я не имею права изменять логику генерации сертификатов. – Anuj