легкий - нежелательный HSTS - PullRequest
0 голосов
/ 08 мая 2018

Я уже несколько лет работаю на своей машине для разработки, настроил несколько vhosts, один из них phpmyadmin, а другой использует SSL с самозаверяющим сертификатом на определенных страницах; и он работал хорошо в течение многих лет.

Но теперь, каждый раз, когда я пытаюсь получить доступ к любому из моих vhosts, браузеры просто показывают мне сообщение об ошибке, утверждая, что сервер неправильно настроен и использует hsts (NET :: ERR_CERT_AUTHORITY_INVALID) - но я никогда не настраивал это!

http://(ip-address)/ отлично работает; как и http://(ip-address)/vhost-path/, и я буду работать с этим до тех пор, пока я не брошу зажигалку в мусорное ведро и не установлю nginx; но перенаправления делают это непригодным в какой-то момент тестирования.

У меня была идея, что AV-программное обеспечение на моем клиенте Windows может вызвать проблему; но это также отображается на самой машине разработки Debian.

Любые идеи о том, как это происходит и как решить проблему?


подробности:

  • Ubuntu 16.04.4 LTS \ n \ l
  • lighttpd / 1.4.35 (ssl)
  • OpenSSL 1.0.2j

содержимое /etc/conf/lighttpd/conf-enabled:

05-auth.conf
10-fastcgi.conf
10-ssl.conf
50-phpmyadmin.conf
10-cgi.conf
10-simple-vhost.conf
15-fastcgi-php.conf
90-javascript-alias.conf

Насколько я помню, только 10-ssl.conf содержит больше содержимого по умолчанию; и все они не менялись годами.

lighttpd.conf (два года назад) содержит:

server.modules = (
        "mod_access",
        "mod_accesslog",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
)

... (general server setup) ...

include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

... (vhost configuration) ...

/etc/conf/lighttpd/ssl/ содержит сертификат SSL для одного хоста, на котором я использую https (действует до 2023 года).

1 Ответ

0 голосов
/ 17 мая 2018

Chrome владеет доменом .dev и решил предварительно загрузить его в статический список HSTS, запеченный в браузере. Firefox недавно последовал за набором. Смотрите эту ссылку для получения дополнительной информации: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Это означает, что вы не можете включить HSTS.

Ваши варианты:

  1. Использовать другой домен (например, .test)
  2. Создайте самозаверяющий сертификат и переключите свой тестовый сайт на HTTPS.

Обратите внимание, что, поскольку HSTS не позволяет вам просматривать ошибки сертификатов, вам также необходимо добавить сертификат (или проблемы) в хранилище доверенных сертификатов.

Я твердо убежден, что разработка должна вестись на сайтах HTTPS. Это соответствует производству, поэтому позволяет избежать проблем со смешанным контентом при запуске, некоторые мощные функции не будут работать на сайтах, работающих только по протоколу HTTP , и аналогично с некоторыми новыми функциями (HTTP / 2, сжатие Brotli, Service Workers) .

Сделайте себе одолжение и просто создайте самоподписанный сертификат, добавьте его в хранилище доверенных сертификатов и перейдите к HTTPS для разработки. Также обратите внимание, что Chrome требует, чтобы сертификаты имели поле SAN, которое требует немного больше усилий, но может быть заполнено этим в linux (замените два экземпляра server.domain.tld):

openssl req \
    -newkey rsa:2048 \
    -x509 \
    -nodes \
    -keyout server.key \
    -new \
    -out server.crt \
    -subj /CN=server.domain.tld\
    -reqexts SAN \
    -extensions SAN \
    -config <(cat /etc/pki/tls/openssl.cnf\<(printf '[SAN]\nsubjectAltName=DNS:server.domain.tld')) \
    -sha256 \
    -days 3650

Или в MacOS, где вы не можете использовать onliner:

cat /System/Library/OpenSSL/openssl.cnf > /tmp/openssl.cnf
echo '[SAN]\nsubjectAltName=DNS:server.domain.tl'>> /tmp/openssl.cnf
openssl req \
    -newkey rsa:2048 \
    -x509 \
    -nodes \
    -keyout server.key \
    -new \-out server.crt \
    -subj /CN=server.domain.tl\
    -reqexts SAN \
    -extensions SAN \
    -config /tmp/openssl.cnf\
    -sha256 \
    -days 3650
...