Подтвердите право собственности на домен для шифрования в OpenShift Online v3

Чтобы получить сертификаты давайте зашифруем, я должен подтвердить, что являюсь владельцем домена. Это не проблема, если вы запускаете собственное приложение в контейнере в OpenShift Online. Но в данном случае я просто беру образ из официального реестра докеров и запускаю его прямо в OpenShift Online.

Единственный способ, который я могу придумать прямо сейчас, - это войти в работающий модуль и установить/запустить там веб-сервер. Но мне это кажется хакерским, и я даже не уверен, что это возможно в среде, которую предоставляет сторонний образ.

Кто-нибудь знает, как это сделать в OpenShift Online v3?


person Rotareti    schedule 12.01.2018    source источник


Ответы (1)


Сам решил. Решение заключалось в использовании DNS-01 Challenge с certbot.

При таком подходе вам нужно создать запись TXT для домена, который вы хотите защитить, и добавить ключ, полученный от certbot, в качестве значения для записи TXT. Затем Certbot подтверждает ваше право собственности на домен, считывая ключ из записи TXT. Вот как это работало:

Сначала я запустил эту команду:

sudo certbot -d mysubdomain.mydomain.com --manual --preferred-challenges dns certonly

который возвращает поддомен, который выглядит так: _acme-challenge.mysubdomain и ключ, который выглядит так: M7MsmY-YywYddXfAVwaKje...

Затем я создал запись TXT для mydomain.com со следующими значениями:

Type: TXT Record
Host: _acme-challenge.mysubdomain
Value: M7MsmY-YywYje...

Я использовал веб-интерфейс своего регистратора доменов для создания записи TXT.

Потребовалось некоторое время, чтобы запись TXT стала общедоступной. Я использовал эту команду на своем ноутбуке, чтобы проверить, готова ли запись TXT:

dig -t txt _acme-challenge.mysubdomain.mydomain.com +short

Он готов, как только возвращает ключ. Когда все будет готово, вы можете вернуться в окно терминала certbot и нажать ENTER, чтобы начать процесс проверки.

Если все работает, certbot сохраняет сертификат/закрытый ключ в:

/etc/letsencrypt/live/mysubdomain.mydomain.com/

Вы можете создать безопасный маршрут с новым сертификатом/закрытым ключом следующим образом:

sudo oc create route edge my-route-name \ 
--service=my-service \
--cert=/etc/letsencrypt/live/mysubdomain.mydomain.com/fullchain.pem \
--key=/etc/letsencrypt/live/mysubdomain.mydomain.com/privkey.pem \
--hostname=mysubdomain.mydomain.com \
--insecure-policy=Redirect -n my-project
person Rotareti    schedule 12.01.2018