2016-09-17 3 views
1

У меня есть обработчики следующего раздел в моем app.yaml:Добавление HSTS заголовков в app.yaml (Google App Engine)

handlers: 
    - url: /(robots\.txt|sitemap\.xml) 
    static_files: \1 
    upload: (robots\.txt|sitemap\.xml) 
    secure: always 
    http_headers: 
     Strict-Transport-Security: 'max-age=63072000; includeSubDomains; preload' 
    - url: /.* 
    script: main.app 
    secure: always 
    http_headers: 
     Strict-Transport-Security: 'max-age=63072000; includeSubDomains; preload' 

и другой поддомен, обслуживаемый другой подмодуль (static.yaml) имеют следующее:

handlers: 
    - url:/
    static_dir: files 
    secure: always 
    http_headers: 
     Access-Control-Allow-Origin: '*' 
     Strict-Transport-Security: 'max-age=63072000; preload' 

Я был в состоянии развернуть static.yaml без каких-либо проблем в AppEngine:

$ appcfg.py update static.yaml 
12:48 PM Host: appengine.google.com 
12:48 PM Application: XXXXXX; module: static; version: 1 
12:48 PM 
Starting update of app: XXXXXXXX, module: static, version: 1 
12:48 PM Getting current resource limits. 
12:48 PM Scanning files on local disk. 
[...] 
[...] 
12:49 PM Checking if updated app version is serving. 
12:49 PM Completed update of app: XXXXXX, module: static, version: 1 

тогда, когда я пытаюсь обновить конфигурацию app.yaml, я получаю:

$ appcfg.py update app.yaml 
12:48 PM Host: appengine.google.com 
Usage: appcfg.py [options] update <directory> | [file, ...] 

appcfg.py: error: Error parsing .\app.yaml: Unexpected attribute "http_headers" for mapping type script. 
    in ".\app.yaml", line 31, column 1. 

Я понимаю, что это значит, я должен был бы справиться с конфигурацией HSTS в моем самом питоне сценария. Но у меня есть ~ 10 обработчиков в интерфейсе main.app. Вместо того, чтобы обновлять каждый из них, чтобы добавить заголовок STS, есть ли альтернатива этому на уровне app.yaml?

Проверка app.yaml reference on GAE, нет упоминания об ограничении директивы http_header в формате script.

ответ

2

Как документ: https://cloud.google.com/appengine/docs/flexible/nodejs/using-custom-domains-and-ssl

Вы не можете использовать Strict-Transport-Security заголовки, если ваш домен не в белый список. Для того, чтобы разместить свой домен в белый список, контакт ...

UPDATE

По состоянию на 2018 год, пользовательские домены не должны быть в белом списке. Другими словами, заголовки HSTS больше не удаляются.

+0

Я думаю, что это устаревшее. Этот документ больше не упоминает белый список. –

+1

Упоминание по-прежнему существует, ссылка изменилась: https://cloud.google.com/appengine/docs/flexible/nodejs/securing-custom-domains-with-ssl – dmitrych

3

Вы можете использовать app.yaml для управления HTTP headers для статических обработчиков файлов, а не для динамических обработчиков. Вам нужно будет установить заголовок внутри вашего кода приложения.

Смежные вопросы