Google App Engine использует неверный сертификат HTTPS для домена по умолчанию - PullRequest
0 голосов
/ 05 марта 2019

У меня есть Google App Engine, где я развертываю разные службы, но для некоторых служб предоставляются неправильные сертификаты.

Я не понял, когда развертывание завершается неудачей , но когда службаразвертывание не работает, не имеет значения, если я попытаюсь развернуть его снова, оно по-прежнему не работает.

Стандартное поведение :

  • Приложение развернуто на https://<service>-dot-<project>.appspot.com
  • Все отлично работает

Неправильное поведение :

  • Приложение развернуто на https://service.project.appspot.com ( обратите внимание, что URL имеет . вместо -dot-
  • URL с -dot- не разрешен
  • URL, где находится приложениеdeployed обслуживает сертификат для *.appspot-preview.com, и я не могу обойти его, потому что есть HSTS

Консоль GCP ничего не сообщает: везде в ссылках консоли идут по предположительно правильному URL (один с -dot-), что дает мне неразрешенный домен. Единственное место, где отображается эффективный URL-адрес, находится втерминал после развертывания

я развертываю с gcloud app deploy --project ${PROJECT} --version ${COMMIT_SHA}, а мой app.yaml:

runtime: python27
service: <service_name>
threadsafe: true
api_version: 1

handlers:
- url: /
  static_files: dist/index.html
  upload: dist/index.html
  secure: always

- url: /(.*)
  static_files: dist/\1
  upload: dist/(.*)
  secure: always

1 Ответ

1 голос
/ 05 марта 2019

После некоторых расследований я нашел виновника: в документации , в разделе service написано (выделено мной):

У каждой службы и каждой версии должно быть имя. Имя может содержать цифры, буквы и дефисы. Не может быть длиннее 63 символов и не может начинаться или заканчиваться дефисом. Выберите уникальное имя для каждого сервис и каждая версия. Не используйте имена между службами и версии.

Это не совсем точно, поскольку в RFC 1035 каждая метка DNS может содержать до 63 символов, а в нашем случае субдомен имеет значение <service>-dot-<project>, что означает, что <service>-dot-<project> не может быть длиннее 63 символов, поэтому service не может быть длиннее (63 - len(project) - 5) символов.

Я использовал имя службы короче 63 символов, но длиннее (63 - len(project) - 5). Короткое название службы решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...