openssl

https://github.com/openssl/openssl/blob/master/INSTALL.md#quick-installation-guide

# https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz
tar zxvf openssl-3.5.0.tar.gz
cd openssl-3.5.0
./Configure --prefix=/opt/openssl/3.5.0 --libdir=lib \
-Wl,-rpath=/opt/openssl/3.5.0/lib -Wl,--enable-new-dtags \
  no-legacy no-tests no-docs
make -j$(nproc)
sudo make -j$(nproc) install_sw

c-ares

https://c-ares.org/

# https://github.com/c-ares/c-ares/releases/download/v1.34.5/c-ares-1.34.5.tar.gz
tar zxvf c-ares-1.34.5.tar.gz
cd c-ares-1.34.5
./configure --prefix=/opt/c-ares/1.34.5
make -j$(nproc)
sudo make -j$(nproc) install

编译安装 curl

https://everything.curl.dev/build/deps.html

apt install libpsl-dev libbrotli-dev libzstd-dev librtmp-dev libssh-dev libnghttp2-dev libnghttp3-dev

https://curl.se/docs/install.html

# https://github.com/curl/curl/releases/download/curl-8_14_0/curl-8.14.0.tar.gz
tar zxvf curl-8.14.0.tar.gz
cd curl-8.14.0
LDFLAGS="-Wl,-rpath=/opt/openssl/3.5.0/lib -Wl,--enable-new-dtags" \
./configure --prefix=/opt/curl/8.14.0 \
--with-openssl=/opt/openssl/3.5.0 --with-openssl-quic \
--enable-ares=/opt/c-ares/1.34.5 \
--with-zlib --with-brotli --with-zstd \
--with-nghttp2 --with-nghttp3 --with-librtmp --with-libssh
make -j$(nproc)
sudo make install -j$(nproc)

测试

/opt/curl/8.14.0/bin/curl --dns-servers 223.5.5.5 https://httpbin.org/status/200

/opt/curl/8.14.0/bin/curl --http3-only https://cloudflare.com

/opt/curl/8.14.0/bin/curl --curves X25519MLKEM768 https://cloudflare.com -Iv 2>&1 | grep SSL