Создать 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 без совместного использования секретных сертификатов и секретных ключей.
- хранить сертификат CA, сертификат сервера и закрытый ключ сервера в секрете TLS
- oc получить секреты к файлам tls.key / tls.crt / ca.crt
- установить в шаблоне маршрута:
- Параметры TLS_PRIVATE_KEY / TLS_CERTIFICATE / CA_CERTIFICATE
- tls.key: ${TLS_PRIVATE_KEY}, tls.certificate: ${TLS_CERTIFICATE}, tls.caCertificate: ${CA_CERTIFICATE}
- 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
Затем оператор позаботится об обновлении маршрута с помощью сертификата/ключа/сертификата из секрета.