为NGINX启用FIPS模式

时间:2018-02-21 15:31:18

标签: nginx openssl fips

我希望得到一些关于为nginx启用openssl fips模式的指导。 到目前为止,我遵循openssl指南在openssl上启用fips模式。

这部分效果很好:

# /usr/local/openssl/bin/openssl md5 /usr/local/openssl/bin/openssl
Error setting digest md5
139805371958952:error:060A80A3:digital envelope 
routines:FIPS_DIGESTINIT:disabled for fips:fips_md.c:180:

# cat /proc/sys/crypto/fips_enabled
1

对于nginx我首先尝试使用这个自定义openssl构建nginx:

/nginx-1.12.2/configure --with-http_ssl_module --with-openssl=/usr/local/openssl --with-ld-opt="-L/usr/local/openssl/lib"

但是由于/ usr / local / openssl是自定义openssl的“已安装”位置,而不是源树,因此失败了。

所以我改变了--with-openssl选项将openssl源树用作:

/nginx-1.12.2/configure --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.2n/ --with-ld-opt="-L/usr/local/openssl/lib" 

这有效,我可以安装nginx,但我不认为正确的openssl编译选项支持fips模式 在nginx configure期间传递。

当我打印nginx信息时:

nginx -V:
nginx version: nginx/1.12.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.2n  7 Dec 2017

然而,自定义openssl是:

/usr/local/openssl/bin/openssl version
OpenSSL 1.0.2n-fips  7 Dec 2017

我是否需要传递openssl编译选项以在配置nginx时启用fips支持?

每个“可配置FIPS模式”线程(https://forum.nginx.org/read.php?10,257298,257298

  

“目前我们通过在我们需要的系统中的SSL库初始化代码之后添加FIPS_mode_set(1)来自行编译nginx来解决这个问题。”

并且“如何检查OpenSSL中的FIPS 140-2支持?”(How to check FIPS 140-2 support in OpenSSL?):

  

可以使用FIPS但不使用。因此,应用程序必须通过FIPS_mode_set启用经过验证的加密,并且调用必须成功。   有人可以告诉我在哪里设置FIPS_mode_set标志吗?

我搜索了那个设置,在nginx下找到了一个二进制obj文件: nginx的-1.12.2 / OBJ文件/ nginx的

和openssl源目录下的头文件: OpenSSL的-1.0.2n / .openssl /包含/ OpenSSL的/ crypto.h

非常感谢任何帮助/指导,谢谢。

更新: 当我检查../src/nginx-1.12.2/make命令的输出时,我注意到,它从../src/openssl-1.0.2n中删除了原始的Makefile,以及其中的FIPS相关选项:

   cd /usr/local/src/openssl-1.0.2n/ \

   && if [ -f Makefile ]; then make clean; fi \

   && ./config --prefix=/usr/local/src/openssl-1.0.2n/.openssl no-shared  \

   && make \

   && make install_sw LIBDIR=lib

   make[2]: Entering directory `/usr/local/src/openssl-1.0.2n'

关于如何将正确的openssl make选项传递给nginx的任何想法? 或者配置nginx使用已经安装的fips能够自定义openssl? 再次感谢

0 个答案:

没有答案