Мы пытаемся создать приложение node.js, которое должно взаимодействовать с сервером через HTTPS (> TLS v1.2). Нам дан некоторый список ключевых, сертифицированных файлов для установления соединения с сервером. Узел HTTPS требует CA, сертификат, файлы ключей, которые являются файлом CA, сертификатом сервера и файлами ключей. При их получении мы получаем следующую ошибку:
Error: unhandled critical extension.
Проведя некоторое время в интернете, мы обнаружили, что сертификат CA имеет несколько пользовательских расширений. Позже, когда мы сделали openssl verify -CAfile ca_file.pem server_cert.pem
мы могли бы воспроизвести его:
error 34 at 0 depth lookup:unhandled critical extension
OK
Так что, похоже, это как-то связано с OpenSSL. Как мы заставляем OpenSSL понимать наши пользовательские расширения? Эти пользовательские расширения также важны, поэтому мы не можем просто игнорировать ошибку, установив -ignore_critical
.