Создать OpenShift TLS маршрут из секрета

Я хочу знать (и как это сделать), чтобы создать безопасный (tls) маршрут в OpenShift из секрета, который будет содержать мой сертификат и ключ (или хранилище ключей JAVA) или 2 секрета (1 с сертификатом, другой с ключом) так что мне не нужно записывать их оба в файл ''route.yaml'' напрямую, а только ссылаться на них......

ОБНОВИТЬ:

Похоже, это невозможно. Если я не сделаю проход через стручок... см. Здесь ---> https://access.redhat.com/solutions/1582583

Тем не менее, я не хочу, чтобы это был окончательный ответ, так как я думаю, что это должно быть поддержано.

Может кто-то сказать мне иначе? Пожалуйста!

5 ответов

Решение

К сожалению, насколько я знаю, он не может настроить сертификаты как secret в route, Если вы просто хотите сделать route объект, используя другой способ, кроме yaml файл, то вы можете настроить route используя следующий CLI.

oc create route edge --service=frontend \
    --cert=${MASTER_CONFIG_DIR}/ca.crt \
    --key=${MASTER_CONFIG_DIR}/ca.key \
    --ca-cert=${MASTER_CONFIG_DIR}/ca.crt \
    --hostname=www.example.com

Я надеюсь, что это поможет вам:^)

Можно обрабатывать шаблон маршрута с помощью TLS без совместного использования секретных сертификатов и секретных ключей.

  1. хранить сертификат CA, сертификат сервера и закрытый ключ сервера в секрете TLS
  2. oc получить секреты к файлам tls.key / tls.crt / ca.crt
  3. установить в шаблоне маршрута:
  • Параметры TLS_PRIVATE_KEY / TLS_CERTIFICATE / CA_CERTIFICATE
  • tls.key: ${TLS_PRIVATE_KEY}, tls.certificate: ${TLS_CERTIFICATE}, tls.caCertificate: ${CA_CERTIFICATE}
  1. oc шаблон процесса с -p "TLS_PRIVATE_KEY=$(cat tls.key)" -p "TLS_CERTIFICATE=$(cat tls.crt)" -p "CA_CERTIFICATE=$(cat ca.crt)"

Идея с многострочными параметрами взята из: https://github.com/openshift/origin/issues/10687

Согласно https://github.com/openshift/origin/issues/2162, эта функция не появится в OpenShift в ближайшее время.

Мой RFE был закрыт RedHat, потому что это должно быть требованием для OpenShift4. Тем временем я начал использовать секреты tls и управлять завершением TLS непосредственно в моих контейнерах, а не на маршруте.

Это так. Для TLS есть секретный тип

oc create secret tls mytlsSecret --cert= --key=

Надеюсь на эту помощь!

Одной из возможностей оператора Cert Utils является возможность заполнения сертификатов маршрутов .

Предполагая, что у вас есть маршрут myrouteи секрет mysecret:

      $ oc annotate route/myroute cert-utils-operator.redhat-cop.io/certs-from-secret=mysecret

Затем оператор позаботится об обновлении маршрута с помощью сертификата/ключа/сертификата из секрета.

Другие вопросы по тегам