ERR_NOT_IMPLEMENTED가 포함된 Chrome 반환

ERR_NOT_IMPLEMENTED가 포함된 Chrome 반환

mTLS(클라이언트 인증서 인증)가 필요한 https 서버가 있습니다. Windows 10에서 Chrome(버전 75.0.3770.100(공식 빌드)(64비트))을 사용하여 서버에 액세스하려고 하면 클라이언트 인증서를 선택하라는 메시지가 나타납니다. 이후 크롬은 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:242BoringSSL의 소스 코드를 보았습니다 .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를 반환해야 하며 위에서 설명한 오류로 이어져서는 안 됩니다.

여기에 무엇이 잘못되었는지 아십니까?

감사해요.

관련 정보