Alpine에서 OpenDKIM을 올바르게 컴파일합니다.

Alpine에서 OpenDKIM을 올바르게 컴파일합니다.

배경

안녕하세요,오픈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을 찾을 수 없는 이유에 대한 설명이 있기를 바랍니다.

관련 정보