Веб-приложение Yesod с бесплатным SSL для Keter и Cloidflare - PullRequest
0 голосов
/ 10 февраля 2019

У меня VPS, на котором запущен Debian 9 с Keter, обслуживающим одно веб-приложение.

Я сгенерировал сертификаты с помощью кнопки Create certificate в разделе Origin Certificates на вкладке Crypto.

ЗатемЯ отредактировал keter.yaml:

stanzas:
  - type: webapp

    exec: ../dist/bin/dummy-name
    args: []
    hosts:
      - dummy-domain.info


    ssl:
      key: /opt/keter/etc/cert/dummy-domain.info.key
      certificate: /opt/keter/etc/cert/dummy-domain.info.pem

Также есть замечание:

    # Enable to force Keter to redirect to https
    # Can be added to any stanza
    # requires-secure: true

Когда я загрузил новый пакет, похоже, что все работает неправильно.Мой веб-сайт можно посещать через HTTP (работает должным образом) и HTTPS, но он не может загружать сгенерированные файлы CSS и JS из статических (ссылки, вставленные в документ, имеют схему http).

Что еще мне следует сделатьчтобы все работало с использованием безопасного HTTPS-соединения?

Для кетера есть неясные варианты:

  # for all stanzas
  requires-secure: true

  # stanza based
  host: ....
  secure: true

Кроме того, я не знаю, какие опции мне следует использовать и в CloudFlare

SSL type now set to Flexible
Always Use HTTPS is OFF

1 Ответ

0 голосов
/ 10 февраля 2019

ОК, наконец-то я сделал следующее:

Приложение keter.yml

stanzas:
  - type: webapp
    exec: ../dist/bin/dummy-name
    args: []
    hosts:
      - dummy-domain.info
    requires-secure: true
    ssl:
      key: /opt/keter/etc/cert/dummy-domain.info.key
      certificate: /opt/keter/etc/cert/dummy-domain.info.pem

Конфигурация Keter на сервере keter-config.yaml

root: ..
#
# # Keter can listen on multiple ports for incoming connections. These ports can
# # have HTTPS either enabled or disabled.
listeners:
    # HTTP
        - host: "*4" # Listen on all IPv4 hosts
          port: 80 # Could be used to modify port
    # HTTPS
        - host: "*4"
          port: 443
          key: cert/dummy-domain.info.key
          certificate: cert/dummy-domain.info.pem

Конфигурация CloudFlare:

Тип SSL теперь установлен на Full
Всегда использовать HTTPS is ON

Также я перезапустил службу кетера sudo service keter restart

Теперь все работает как положено.

...