Обновление: curl прекратил поддержку --sslv2 / sslv3 через некоторое время после версии curl 7.76.1. был выпущен, поэтому вы также должны скомпилировать curl версии 7.76.1 или старше. Инструкции были обновлены, чтобы обеспечить создание curl 7.76.1. (спасибо Матиасу Барросу за обновление)
вам нужно будет скомпилировать как curl, так и ваш сервер ssl из исходного кода, очевидно, вам понадобится компилятор C и, возможно, еще что-то, но не знаю, что, надеюсь, это должно охватывать это:
sudo apt-get install gcc build-essential make cmake autoconf git automake libtool
это, вероятно, можно сделать с помощью нескольких бэкэндов ssl, но, поскольку я лучше всего знаком с OpenSSL, я продолжу с OpenSSL, чтобы собрать openssl, перейдите в репозиторий openssl по адресу https://github.com/openssl/openssl и найдите подходящую версию openssl, в этом примере я выбрал версию 1.1.1k
(это последняя стабильная версия openssl на момент написания ),
git clone -b 'OpenSSL_1_1_1k' --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 поддержка ключей --sslv2 / --sslv3 7.76.1
,
git clone -b 'curl-7_76_1' --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)
(если вам интересно, почему я использовал реальный путь: похоже, в скрипте сборки curl есть ошибка, которая приводит к сбою, если вы указываете относительный путь, поэтому, похоже, требуется абсолютный путь. если вам интересно, почему я сделал статическую сборку, также известную как - -disable-shared --enable-static, у вас может быть другая библиотека libopenssl в $PATH, поэтому, чтобы избежать конфликта со встроенным libopenssl Ubuntu, статическая сборка безопаснее.)
и наконец,
/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.)
TL;DR
git clone -b 'OpenSSL_1_1_1k' --single-branch --depth 1 https://github.com/openssl/openssl
cd openssl
./config no-shared enable-ssl2 enable-ssl3 enable-ssl3-method
make -j $(nproc)
mkdir lib
cp *.a lib;
cd ..
git clone -b 'curl-7_76_1' --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)
./src/curl --sslv3 https://google.com
person
hanshenrik
schedule
31.05.2019