针对Nginx SSL协议进行安全加固

由于自建nginx服务在安全审查时需要进行SSL协议进行加固

nginxSSL协议加固建议如下

Nginx SSL协议采用TLSv1.2:
1、打开`conf/nginx.conf`配置文件(or include file in the main configuration file);
2、配置
```
server { 
               ...
              ssl_protocols TLSv1.2;
               ...
                     }
```
备注:配置此项请确认nginx支持OpenSSL,运行`nginxv -V` 如果返回中包含`built with OpenSSL`则表示支持OpenSSL。如果不支持,请重新编译nginx

在加固时,发现这个nginx并没有开启SSL模块

./nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
configure arguments: --prefix=/home/nginx

 故需要重新编译nginx

在nginx的解压包下运行 

./configure --prefix=/home/nginx  --with-http_ssl_module --with-openssl=/usr/local/ssl

make

--prefix:nginx的安装位置

--with-http_ssl_module:开启nginx的ssl模块

--with-openssl:openssl的的位置正常情况下不需要指定,openssl手动手动安装过的话有可能找不到需要指定。

但是在make后爆出了这样的错误

/bin/sh: line 2: ./config: No such file or directory
make[1]: *** [/usr/local/ssl/.openssl/include/openssl/ssl.h] Error 127
make[1]: Leaving directory `/usr/local/src/nginx-1.9.9'
make: *** [build] Error 2

 根据报错信息我们知道,出错是因为Nginx在编译时并不能在/usr/local/ssl/.openssl/ 这个目录找到对应的文件,其实我们打开/usr/local/ssl/这个目录可以发现这个目录下是没有.openssl目录的,因此我们修改Nginx编译时对openssl的路径选择就可以解决这个问题了
解决方案:
打开nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件:
找到这么一段代码:
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
修改成以下代码:
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
 然后再进行Nginx的编译安装即可

注意 现在展示只能make 不要 make install

假如make install就会把之前安装的nginx给覆盖

在在make之后进入objs文件夹

把里面的nginx文件跟之前的nginx文件替换,再重启一下,ssl模块就搞好了。

./nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.1.1i  8 Dec 2020
TLS SNI support enabled
configure arguments: --prefix=/home/nginx --with-http_ssl_module --with-openssl=/usr/local/ssl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 更新Nginx版本: 使用最新版本的Nginx可以保证SSL协议安全性,因为新版本通常会修复已知的漏洞。 2. 选择安全的加密套件: 在Nginx的配置文件中,可以选择使用安全的加密套件,例如AES和RSA等。同时,可以禁用不安全的加密套件,例如DES和RC4等。 3. 启用HSTS: HTTP Strict Transport Security (HSTS) 可以强制客户端只使用HTTPS进行通信,从而提高安全性。在Nginx的配置文件中,可以启用HSTS: ``` add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; ``` 4. 禁止SSLv2和SSLv3: SSLv2和SSLv3已经被证明是不安全的,因此应该禁用它们。在Nginx的配置文件中,可以添加以下指令: ``` ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ``` 5. 启用OCSP Stapling: OCSP Stapling可以提高SSL证书的验证速度,并减少中间人攻击的可能性。在Nginx的配置文件中,可以启用OCSP Stapling: ``` ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/chain.pem; resolver 8.8.8.8; ``` 6. 使用证书链: 使用证书链可以增加SSL证书的可信度,从而提高安全性。在Nginx的配置文件中,可以使用证书链: ``` ssl_certificate /path/to/ssl.crt; ssl_certificate_key /path/to/ssl.key; ssl_trusted_certificate /path/to/chain.pem; ``` 7. 防止DoS攻击: 在Nginx的配置文件中,可以设置连接限制和缓冲区大小,从而防止DoS攻击: ``` limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; client_body_buffer_size 10K; client_header_buffer_size 1k; ``` 8. 启用TLS 1.3: TLS 1.3是最新的SSL/TLS协议,可以提供更高的安全性和更快的连接速度。在Nginx的配置文件中,可以启用TLS 1.3: ``` ssl_protocols TLSv1.3; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值