Chrome が ERR_NOT_IMPLEMENTED を返す

Chrome が ERR_NOT_IMPLEMENTED を返す

mTLS (クライアント証明書認証) を必要とする https サーバーがあります。Windows 10 で Chrome (バージョン 75.0.3770.100 (公式ビルド) (64 ビット)) を使用してサーバーにアクセスしようとすると、クライアント証明書を選択するように求められます (選択しました)。その後、Chrome は ERR_NOT_IMPLEMENTED を返します。

追加情報:

  • IE11、Edge、Firefoxから同じURLを使用してサーバーにアクセスできます
  • サーバーの証明書 CA 証明書への信頼が確立されています (CA が信頼されたルート証明機関ストアにインポートされています)。接続は IE で安全としてマークされています。
  • キャプチャされた Chrome ネットワーク ログ。ここで問題を見つけることができました:
t=3200 [st=10]      SSL_HANDSHAKE_MESSAGE_RECEIVED
                    --> bytes =
                      0E 00 00 00                                        .   
                    --> type = 14
t=3200 [st=10]      SSL_CLIENT_CERT_REQUESTED
t=3201 [st=11]      SSL_HANDSHAKE_ERROR
                    --> error_lib = 16
                    --> error_reason = 228
                    --> file = "../../third_party/boringssl/src/ssl/ssl_cert.cc"
                    --> line = 242
                    --> net_error = -11 (ERR_NOT_IMPLEMENTED)
                    --> ssl_error = 1
t=3201 [st=11]   -SSL_CONNECT
                  --> net_error = -11 (ERR_NOT_IMPLEMENTED)
t=3201 [st=11]    SOCKET_CLOSED

ssl_cert.cc:242私はBoringSSLのソースコードを見てhttps://github.com/google/boringssl/blob/d6f9c359d219055a89c676cb8886421b145a08da/ssl/ssl_cert.cc#L242

ここで関連するコードは次のようになります:

bool ssl_is_key_type_supported(int key_type) {
  return key_type == EVP_PKEY_RSA || key_type == EVP_PKEY_EC ||
         key_type == EVP_PKEY_ED25519;
}

言い換えると、RSA 証明書の場合、関数は true を返すはずであり、上記のようなエラーは発生しないはずです。

ここで何が間違っているのか分かりますか。

ありがとう。

関連情報