"The operation is insecure." 在使用 Mailcow 的 firefox 上 navigator.credentials.create()

"The operation is insecure." On navigator.credentials.create() on firefox using Mailcow

我正在尝试使用 Firefox 95.0.2 在 Mailcow 中注册一个 fido2 设备。 尝试这样做时,注册状态字段宣布:

The operation is insecure.

我已经设法将错误追踪到这一行:

return navigator.credentials.create(createCredentialArgs);

其中 createCredentialArgs 是:

{"publicKey":{"rp":{"name":"WebAuthn Library","id":"subdomain.domain.tld:port"},"authenticatorSelection":{"userVerification":"preferred","requireResidentKey":true},"user":{"id":"=?BINARY?B?YWRtaW4=?=","name":"admin","displayName":"admin"},"pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-257}],"attestation":"direct","extensions":{"exts":true},"timeout":30000,"challenge":"=?BINARY?B?AJpcm\/8fHdnFDt60yDig2j14XLKtQmJfvslXLPIFj0g=?=","excludeCredentials":[]}}

服务器使用 Mailcow 安装、客户端主机和 Firefox 上的自定义 CA 证书。

有什么想法吗?

在对 Edge 进行了更多测试后(并发现了“thisisunsafe”技巧),我发现 WebAuthn 并不是端口的忠实粉丝。 所以,它不喜欢:"id":"subdomain.domain.tld:port".

在初始化 $WebAuthn 变量时替换 $_SERVER['SERVER_NAME'] 中的 $_SERVER['HTTP_HOST'] 解决了问题。

基本上 navigator.credentials.create() 不接受带端口的 ID。