【问题标题】:lighty - unwanted HSTS轻量级 - 不需要的 HSTS
【发布时间】:2018-05-18 04:48:27
【问题描述】:

我已经在我的开发机器上运行了好几年了,已经设置了一些虚拟主机,其中一个是 phpmyadmin,另外一个在某些页面上使用带有自签名证书的 SSL;多年来一直运行良好。

但是现在,每次我尝试访问我的任何一个虚拟主机时,浏览器都会向我显示一条错误消息,声称服务器未正确配置并使用 hsts (NET::ERR_CERT_AUTHORITY_INVALID) - 但我从未设置过!

http://(ip-address)/ 工作正常;就像http://(ip-address)/vhost-path/ 一样,我会一直使用它,直到我把它扔进垃圾箱并安装 nginx;但是重定向在测试中的某些时候会导致它无法使用。

我认为我的 Windows 客户端上的 AV 软件可能会导致问题;但它也显示在 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(mtime 两年前)包含:

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/ 包含我在其上使用 https 的一个虚拟主机的 SSL 证书(有效期至 2023 年)。

【问题讨论】:

  • 您是否使用以 .dev 结尾的域?
  • @BarryPollard 绝对是的!我现在需要注册 TLD 吗?

标签: configuration lighttpd hsts


【解决方案1】:

Chrome 拥有 .dev 顶级域名,并决定将其预加载到浏览器中烘焙的静态 HSTS 列表中。 Firefox 最近紧随其后。有关更多信息,请参阅此链接:https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

这意味着您不能关闭 HSTS。

您的选择是:

  1. 使用不同的域(例如 .test)
  2. 创建自签名证书并将您的测试站点切换到 HTTPS。

请注意,由于 HSTS 不允许您单击证书错误,因此您还需要将证书(或问题)添加到信任库。

我强烈认为应该在 HTTPS 网站上进行开发。这与生产相匹配,因此可以避免在上线时出现混合内容的问题,certain powerful features will not work on HTTP-only sites,并且与某些新功能(HTTP/2、Brotli 压缩、Service Worker)类似。

帮自己一个忙,创建一个自签名证书,将其添加到您的信任库,然后迁移到 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 上:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多