вам нужно будет скомпилировать как curl, так и ваш ssl-бэкэнд из исходного кода, очевидно, вам понадобится компилятор C и, возможно, больше материала, но не знаю, что, надеюсь, это должно охватить:
sudo apt-get install gcc build-essential make cmake autoconf git automake
это, вероятно, можно сделать с несколькими бэкэндами ssl, но, поскольку я наиболее знаком с OpenSSL, я перейду к OpenSSL, чтобы собрать openssl, перейдите в репозиторий openssl по адресу https://github.com/openssl/openssl и найдите подходящий openssl. версия, в этом примере я выбрал версию 1.1.1c
(которая является последней стабильной версией openssl на момент написания),
git clone -b 'OpenSSL_1_1_1c' --single-branch --depth 1 https://github.com/openssl/openssl
cd openssl
./config no-shared enable-ssl2 enable-ssl3 enable-ssl3-method
make -j $(nproc)
(последний шаг может занять некоторое время), но скрипт сборки openSSL не создает папку lib, но скрипт сборки curl ожидает, что файлы lib будут находиться в папке lib внутри папки openssl, поэтому после make выполните команду
mkdir lib
cp *.a lib;
как только это будет сделано, пришло время сделать curl, поэтому cd ..
оттуда и клонирую последнюю версию curl, в этом примере я использую curl 7.65.0
(последний выпуск curl на момент написания),
git clone -b 'curl-7_65_0' --single-branch --depth 1 https://github.com/curl/curl.git
cd curl
./buildconf
LDFLAGS="-static" ./configure --with-ssl=$(realpath ../openssl) --disable-shared --enable-static
make -j $(nproc)
(если вам интересно, почему я использовал realpath: в buildscript curl, по-видимому, есть ошибка, которая приводит к сбою, если вы указываете относительный путь, поэтому требуется абсолютный путь, кажется. Если вам интересно, почему я сделал статический build aka --disable-shared --enable-static, у вас может быть другая библиотека libopenssl в вашем $ PATH, поэтому во избежание конфликта со встроенным в ubuntu libopenssl статическая сборка безопаснее.)
и, наконец,
/temp2/curl# ./src/curl --sslv3 https://google.com
curl: (35) error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version
(потому что https://google.com больше не поддерживает sslv3.)