Вы можете собрать curl для использования одной из множества различных библиотек TLS/SSL, каждая из которых имеет немного разные наборы функций и предлагает немного разные условия для работы с curl.
Завиток, который вы показываете в своих списках вопросов, указывает SecureTransport
как библиотеку TLS, для использования которой он был создан, родную библиотеку TLS для macOS.
Secure Transport просто не предоставляет curl необходимых средств для согласования HTTP/2 через TLS — или, по крайней мере, не предоставляет, так как мне сказали, что самая последняя версия теперь поддерживает ALPN, поэтому будущая версия curl должна иметь возможность делайте HTTP/2 через TLS даже с безопасным транспортом.
В дополнение к правильному согласованию TLS, curl также должен говорить по HTTP/2, что он делает благодаря использованию почтенной библиотеки nghttp2, так что это вторая зависимость, которая должна присутствовать, чтобы curl мог говорить по HTTP/2. При наличии nghttp2 curl может фактически передавать HTTP/2 по HTTP с открытым текстом, даже если библиотека TLS не может правильно согласовать ALPN.
Исправить?
В более поздних версиях macOS поставляется curl со встроенной поддержкой libreSSL и HTTP/2.
Если вместо этого вы решите пересобрать curl с другой библиотекой TLS, такой как OpenSSL, GnuTLS или NSS, он уже сегодня может нормально работать с HTTP/2 через HTTPS.
person
Daniel Stenberg
schedule
05.07.2017