通过 OpenSSL 3.0 使 APISIX 支持 FIPS 模式

目前,OpenSSL 3.0 支持了 FIPS 模式。为了在 APISIX 中支持 FIPS 模式,你应该使用 OpenSSL 3.0 来编译 apisix-runtime。

编译

如果你需要使用 OpenSSL 3.0 来编译 apisix-runtime,请以 root 用户角色来执行以下命令:

  1. cd $(mktemp -d)
  2. OPENSSL3_PREFIX=${OPENSSL3_PREFIX-/usr/local}
  3. apt install -y build-essential
  4. git clone https://github.com/openssl/openssl
  5. cd openssl
  6. ./Configure --prefix=$OPENSSL3_PREFIX/openssl-3.0 enable-fips
  7. make install
  8. echo $OPENSSL3_PREFIX/openssl-3.0/lib64 > /etc/ld.so.conf.d/openssl3.conf
  9. ldconfig
  10. $OPENSSL3_PREFIX/openssl-3.0/bin/openssl fipsinstall -out $OPENSSL3_PREFIX/openssl-3.0/ssl/fipsmodule.cnf -module $OPENSSL3_PREFIX/openssl-3.0/lib64/ossl-modules/fips.so
  11. sed -i 's@# .include fipsmodule.cnf@.include '"$OPENSSL3_PREFIX"'/openssl-3.0/ssl/fipsmodule.cnf@g; s/# \(fips = fips_sect\)/\1\nbase = base_sect\n\n[base_sect]\nactivate=1\n/g' $OPENSSL3_PREFIX/openssl-3.0/ssl/openssl.cnf
  12. cd ..
  13. export cc_opt="-I$OPENSSL3_PREFIX/openssl-3.0/include"
  14. export ld_opt="-L$OPENSSL3_PREFIX/openssl-3.0/lib64 -Wl,-rpath,$OPENSSL3_PREFIX/openssl-3.0/lib64"
  15. wget --no-check-certificate https://raw.githubusercontent.com/api7/apisix-build-tools/master/build-apisix-runtime.sh
  16. chmod +x build-apisix-runtime.sh
  17. ./build-apisix-runtime.sh

apisix-runtime 将安装在 /usr/local/openresty