我想在服务器上安装一个并行的openssl版本来启用内核tls。因为我不能直接在服务器上工作,所以我创建了下一个Dockerfile来安装openssl 3.1.0并使用enable-ktls:
# syntax=docker/dockerfile:1
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y build-essential cmake zlib1g-dev libcppunit-dev git subversion wget && rm -rf /var/lib/apt/lists/*
RUN wget https://www.openssl.org/source/openssl-3.0.1.tar.gz -O - | tar -xz
WORKDIR /openssl-3.0.1
RUN ./config enable-ktls --prefix=/usr/local/openssl --openssldir=/usr/local/openssl && make && make install
然后当我运行apps/openssl时,我会得到这两个版本:
root@9dba9fef1455:/openssl-3.0.1# apps/openssl version -a
OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.2 15 Mar 2022)
built on: Thu Oct 27 17:06:56 2022 UTC
platform: debian-amd64
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-WsPfAX/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-3"
MODULESDIR: "/usr/lib/x86_64-linux-gnu/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0x7ffef3ffffebffff:0x40417f5ef3bfb7ef
问题是,每当我尝试使用该库执行服务器时,我都会得到错误:
apps/openssl s_server -key key.pem -cert cert.pem -tls1_2 -cipher ECDHE-RSA-AES128-GCM-SHA256 -accept 443 -ktls
s_server: Unknown option: -ktls
所以我猜它是从服务器而不是从docker使用openssl库。我在这里错过了什么?
1条答案
按热度按时间omhiaaxx1#
您执行的
openssl
命令不是您在docker
上安装的命令,这就是我猜您遇到问题的原因。请尝试在运行s_server
时直接在docker
中指定openssl
二进制文件的路径。试试这个
/apps/openssl/apps/openssl s_server -key key.pem -cert cert.pem -tls1_2 -cipher ECDHE-RSA-AES128-GCM-SHA256 -accept 443 -ktls