| Server IP : 157.230.181.24 / Your IP : 216.73.217.11 Web Server : Apache/2.4.58 (Ubuntu) System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64 User : ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/vhosts/ceagon/open-oscar-server/ |
Upload File : |
###############################################################################
# Build stage – compile OpenSSL 1.0.2u and stunnel 5.75
#
# Why the ancient OpenSSL? AIM 6.2–7.0 begin the TLS handshake with an
# SSLv2-format ("v2 hello") ClientHello for backward compatibility, even when
# they go on to negotiate TLS 1.0. OpenSSL 1.1.0 removed the code that parses
# these SSLv2-style ClientHello records, so any modern OpenSSL (1.1.x / 3.x)
# rejects the handshake outright. OpenSSL 1.0.2u is the last release that still
# accepts the v2 hello, so stunnel must be linked against it to front these
# clients.
###############################################################################
FROM debian:12.11-slim AS build
ARG OPENSSL_VERSION=1.0.2u
ARG OPENSSL_TAG=OpenSSL_1_0_2u
ARG STUNNEL_VERSION=5.76
ARG OPENSSL_URL=https://github.com/openssl/openssl/releases/download/${OPENSSL_TAG}/openssl-${OPENSSL_VERSION}.tar.gz
ARG STUNNEL_URL=https://www.stunnel.org/archive/5.x/stunnel-${STUNNEL_VERSION}.tar.gz
# Build prerequisites
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
wget \
perl \
zlib1g-dev \
pkg-config && \
rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src
# ---------- OpenSSL ----------------------------------------------------------
RUN wget -qO openssl.tar.gz "${OPENSSL_URL}" && \
tar xzf openssl.tar.gz && \
cd openssl-${OPENSSL_VERSION} && \
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib && \
make -j"$(nproc)" && \
make install_sw
# ---------- stunnel ----------------------------------------------------------
RUN wget -qO stunnel.tar.gz "${STUNNEL_URL}" && \
tar xzf stunnel.tar.gz && \
cd stunnel-${STUNNEL_VERSION} && \
./configure \
--with-ssl=/usr/local/openssl \
--prefix=/usr/local \
--sysconfdir=/etc \
--disable-libwrap && \
make -j"$(nproc)" && \
make install
###############################################################################
# Runtime stage – only what we need to run stunnel
###############################################################################
FROM debian:bookworm-slim AS runtime
COPY --from=build /usr/local/openssl /usr/local/openssl
COPY --from=build /usr/local/bin/stunnel /usr/local/bin/
COPY --from=build /usr/local/lib /usr/local/lib
# Make sure the custom OpenSSL is preferred at runtime
ENV LD_LIBRARY_PATH="/usr/local/openssl/lib"
# Directory to hold the user‑supplied stunnel.conf
RUN mkdir -p /etc/stunnel
WORKDIR /etc/stunnel
EXPOSE 443 1088
ENTRYPOINT ["stunnel"]
# You can pass the config file name as CMD or at `docker run` time, e.g.:
# CMD ["stunnel.conf"]