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。私はこれが私が通過しなければならないことを意味するかもしれないと思いますLDFLAGSCFLAGS、それが何でなければならないのかわかりません。
  • Debian バスターする必要なコンパイルフラグを含めます。
  • 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を見つけることができない理由についての説明があることを願っています。

おすすめ記事