Как решить кошмар Rust+TLS+Windows


Проблема

Разработка с rusttls или openssl может стать огромной проблемой при работе с такими пакетами, как actix или awc. Эти пакеты обычно выдают SSL ошибки при выполнении запросов или использовании прокси для передачи на любой https url.

Решение

Установите Visual Studio

  • Установите инструменты Compoment for Windows Development и Linux Embedded Development for C++.

Установите Rust

Установите инструментарий stable-x86_64-pc-windows-msvc.

  rustup toolchain install stable-x86_64-pc-windows-msvc
  rustup default stable-x86_64-pc-windows-msvc
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Установите Msys2

Установите msys2:

  pacman -Syu openssl-devel pkg-config mingw-w64-x86_64-toolchain
Войти в полноэкранный режим Выйти из полноэкранного режима

Настройка vcpkg

  1. Создайте новую папку: mkdir -p C:tools.
  2. Клонируйте vcpkg: git clone https://github.com/microsoft/vcpkg.
  3. Перейдите в C:toolsvcpkg
  4. Выполните следующие команды установки:
  ./bootstrap-vcpkg.bat
  ./vcpkg.exe install openssl-windows:x64-windows
  ./vcpkg.exe install openssl:x64-windows-static
  ./vcpkg.exe integrate install
Войти в полноэкранный режим Выйти из полноэкранного режима

Установка корневого сертификата Openssl

  1. Создайте каталог: mkdir -p C:Program FilesOpenSSL-Win64certs.
  2. Скачайте файл cacert.pem
  3. Поместите его в директорию certs.

Наконец, обновите все наши окружения:

  1. Добавьте в путь:
    • C:msys64mingw64bin
  2. Добавьте следующие переменные окружения:
    • VCPKG_ROOT=C:toolsvcpkg
    • SSL_CERT_FILE=C:Program FilesOpenSSL-Win64certscacert.pem
    • RUSTFLAGS=-Ctarget-feature=+crt-static
    • OPENSSL_NO_VENDOR=1

Заключение

Разработка с Rust и Windows может быть относительно безболезненным процессом, но просто rusttls или openssl может быть огромной болью при работе с такими пакетами, как actix или awc. Возможно, есть более простой способ выполнить эту задачу, но эти шаги, которые я нашел, являются наиболее надежными и повторяемыми в нескольких системах.

Источники

Спасибо этим прекрасным людям за то, что направили меня на правильный путь.

  • Stackoverflow: Как работать с OpenSSL для Rust в среде разработки Windows
  • Microsoft vcpkg

Оцените статью
Procodings.ru
Добавить комментарий