Chromium TLS 标志在无头模式下被忽略

Chromium TLS flags ignored when in headless mode

我想限制 Chromium 最多使用 TLSv1.2 协议,根据 Chromium source code 我们可以强制使用一些特定标志的 TLS 版本。

如果我 运行 Chromium 通常带有

这样的标志
./Chromium --ignore-certificate-errors --ssl-version-min=tls1 --ssl-version-max=tls1.2 --tlsv1 --tlsv1.1 --tlsv1.2 https://104.17.209.9

我最终会按预期看到 TLSv1.2 握手。如果我 运行 相同的命令但处于无头模式,Chromium 最终使用 TLSv1.3。

./Chromium --headless --ignore-certificate-errors --ssl-version-min=tls1 --ssl-version-max=tls1.2 --tlsv1 --tlsv1.1 --tlsv1.2 https://104.17.209.9

为什么会这样?无头模式 ignore/disable 这样的标志?

使用 puppeteer 2.1.1 附带的版本在 macOS Catalina 10.15.2 上使用 Chromium 80.0.3987.0 进行测试

根据this chromium issue

The command-line flag is seen as part of our Enterprise configuration options, and I don't believe it's expected that Headless observes Enterprise flags (command-line or those set via Enterprise configuration stores, such as the Registry or Cloud Device Management)