Защита трафика API OpenStack с помощью SSL

Входящий и исходящий трафик внешней оконечной точки, прослушивающей запросы API OpenStack, можно защитить с помощью сертификата SSL. Но поскольку доменные имена не используются по умолчанию, сертификат должен будет содержать поле subjectAltName с IP-адресом вышеупомянутого сервера управления. Если такого поля нет, потребуется изменить внешнюю оконечную точку так, чтобы использовалось доменное имя, для которого у вас есть сертификат.

Ограничения

  • Для панели администрирования и API OpenStack можно добавить и применить только один SSL-сертификат.

Чтобы защитить трафик API OpenStack с помощью SSL

Выполните следующие действия:

  1. На панели администрирования отправьте SSL-сертификат и закрытый ключ на экране Настройки > Сервер управления > Доступ по SSL.
  2. На стороне клиента поместите файл сертификата ЦС в доверенную цепочку операционной системы.

    # cp ca.pem /etc/pki/ca-trust/source/anchors/
    # update-ca-trust extract
    

    Как вариант, можно добавить параметр --os-cacert ca.pem к каждому вызову клиента OpenStack.

  3. Если в сертификате нет поля subjectAltName, измените все внешние оконечные точки так, чтобы использовалось доменное имя, для которого у вас есть сертификат, как описано в разделе Установка доменного имени для API вычислений. Это доменное имя должно разрешаться в IP-адрес сервера управления (или его виртуальный IP-адрес, если включена высокая доступность).
  4. В скрипте OpenRC измените OS_AUTH_URL на то же доменное имя и удалите все параметры, связанные с незащищенным доступом, например:

    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=<ADMIN_PASSWORD>
    export OS_AUTH_URL=https://<DOMAIN_NAME>:5000/v3
    export OS_IDENTITY_API_VERSION=3
    

Теперь можно выполнять команды OpenStack без параметра --insecure.