배경
안녕하세요,오픈DKIM허용되는공식 APK 저장소--with-odbx
이지만 및 등 필요한 중요한 구성 플래그는 포함하지 않습니다 --with-sql-backend
.
비교적 쉽게 정리할 수 있었습니다.하지만, 생성된 OpenDKIM 바이너리는 RSA-SHA256을 지원하지 않기 때문에 DKIM 헤더를 확인할 수 없습니다. 나는 이것이 이상하다고 생각했다. 왜냐하면apk add opendkim
하다RSA-SHA256을 지원합니다.
질문
이러한 추가 구성 플래그를 사용하여 Alpine 3.14에서 OpenDKIM을 컴파일하는 방법그리고RSA-SHA256은 계속 지원됩니까?
재현 단계
먼저 OpenDKIM 2.11.0-Beta2와 OpenDBX 1.4.6을 폴더에 미리 다운로드해 두었습니다 packages
.
mkdir packages
wget -P packages \
https://github.com/trusteddomainproject/OpenDKIM/archive/refs/tags/2.11.0-Beta2.tar.gz \
http://linuxnetworks.de/opendbx/download/opendbx-1.4.6.tar.gz
그런 다음 나는 Dockerfile
주로 다음 내용을 바탕으로 이 기사를 썼습니다.APKBUILD 파일.
FROM alpine:3.14
COPY packages /opt/data
RUN apk add --no-cache \
alpine-sdk \
automake \
autoconf \
db-dev \
libtool \
mariadb-dev \
readline-dev \
&& cd /opt/data \
&& tar xzf opendbx-1.4.6.tar.gz \
&& cd opendbx-1.4.6/ \
&& CPPFLAGS="-I/usr/include/mysql" ./configure --with-backends="mysql" \
&& make install
RUN apk add --no-cache \
openssl-dev \
libmilter-dev \
&& cd /opt/data \
&& tar xzf 2.11.0-Beta2.tar.gz \
&& cd OpenDKIM-2.11.0-Beta2 \
&& autoreconf -vif \
&& ./configure \
--sysconfdir=/etc/opendkim \
--with-odbx \
--with-openssl=/usr/lib \
--with-sql-backend \
&& make \
&& make install
그런 다음 도커 이미지를 빌드하고 실행했습니다.
docker build -t opendkim-alpine .
docker run opendkim-alpine opendkim -V
"지원되는 서명 알고리즘"에 알림이 없습니다 rsa-sha256
. 여기 출력과 비교해 보세요.
docker run alpine:3.14 ash -c 'apk add opendkim && opendkim -V'
노트
./configure
오류로 인해 완료하지 못했습니다: libssl을 지정할 때까지 찾을 수 없습니다--with-openssl=/usr/lib
. 나는 이것이 내가 통과해야 한다는 것을 의미할 수도 있다고 생각LDFLAGS
하지만CFLAGS
, 그것이 무엇이어야 하는지 전혀 모릅니다.- 데비안 버스터하다필요한 컴파일 플래그를 포함하세요..
- APKBUILD 파일에서는 그 값이 무엇인지 알 수 없고
CFLAGS
, 무슨 일을 하는지 쉽게 알 수 없습니다default_prepare
. 이러한 질문에 대한 답은 실험을 통하지 않는 한 상대적으로 불투명하고 어려워 보입니다. - 나는 보았다다른 시도전체 알파인 빌드 환경을 생성하고
sed
추가 플래그를 포함하도록 APKBUILD 파일을 수정하는 데 사용됩니다. 이것은 과잉인 것 같습니다. - Google 직원의 경우 확인 모드에서 opendkim을 실행하려고 할 때 나타나는 오류 메시지입니다
opendkim: verify mode requires rsa-sha256 support
.
답변1
알았어, 알겠어. 이유는 전혀 모르겠지만 다음 환경 변수를 설정해야 합니다 ./configure
.
CPPFLAGS="-I/usr/include/openssl"
따라서 완전한 RUN
명령은 다음과 같습니다.
RUN apk add --no-cache \
openssl-dev \
libmilter-dev \
&& cd /opt/data \
&& tar xzf 2.11.0-Beta2.tar.gz \
&& cd OpenDKIM-2.11.0-Beta2 \
&& autoreconf -vif \
&& CPPFLAGS="-I/usr/include/openssl" ./configure \
--sysconfdir=/etc/opendkim \
--with-odbx \
--with-openssl \
--with-sql-backend \
&& make \
&& make install
나는 시행착오를 통해 이것을 알아냈고, OpenDKIM이 기본적으로 openssl을 찾을 수 없는 이유에 대한 설명이 있기를 바랍니다.