配置 Nginx SSL 避免不够安全的加密算法

   如果Web服务中的SSL协议出现安全问题,攻击者就可以拥有你所有的安全信息。Nginx使用ssl模块配置HTTPS支持,就会遇到这个问题。

  通过命令: nmap --script ssl-cert,ssl-enum-ciphers -p 443(host),就可以看到如下部分信息:

  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_128_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_AES_256_CBC_SHA - broken
|       TLS_ECDH_anon_WITH_RC4_128_SHA - broken
|       TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - weak
|       TLS_RSA_EXPORT_WITH_RC4_40_MD5 - weak
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA - strong

在上面的片段中我们看到了weak、strong字段,weak都是40位加密的,strong应该都在128位以上。

如果在配置 Nginx 的 SSL 时不指定 ssl_ciphers,那么默认允许使用的加密算法和协议将会包括一些已经证实不够安全的算法及协议,比如对称加密密钥不足 128-bit 的算法等,也就是SSL协议包含很多算法,其中有一些128位以下的较容易被破解需要禁用。为了保证 SSL 连接足够安全,将128位以下弱加密算法禁用在配置时应该明确指定算法:

ssl_ciphers HIGH:!ADH:!MD5;

编辑配置文件nginx.conf,把这句加在 server 配置节里就可以了,在浏览器使用不安全的算法时,会自动禁止连接。


  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Nginx是一款高性能的Web服务器和反向代理服务器,它也支持SSL/TLS加密协议。为了配置NginxSSL/TLS,你需要进行以下步骤: 1. 获取SSL证书:首先,你需要从可信任的证书颁发机构(CA)或者使用自签名证书来获取SSL证书。证书一般包括公钥、私钥和证书链。 2. 将证书文件放置在合适的位置:将获取到的证书文件放置在一个安全的目录中,例如"/etc/nginx/ssl/"。 3. 配置SSL参数:在Nginx配置文件中,找到需要启用SSL的server块。在该块中添加以下配置参数: ``` listen 443 ssl; ssl_certificate /etc/nginx/ssl/certificate.crt; # SSL证书文件路径 ssl_certificate_key /etc/nginx/ssl/private.key; # 私钥文件路径 ``` 这些配置项指定了监听端口为443,并且指定了SSL证书和私钥的路径。 4. 配置SSL协议和密码套件:为了增强安全性,你可以配置Nginx使用特定的SSL协议版本和密码套件。以下是一个示例配置: ``` ssl_protocols TLSv1.2 TLSv1.3; # 仅启用TLSv1.2和TLSv1.3协议 ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512; # 指定密码套件 ssl_prefer_server_ciphers on; # 优先使用服务器指定的密码套件 ``` 这个示例配置启用了TLSv1.2和TLSv1.3协议,并且指定了密码套件。 5. 重启Nginx服务:完成以上配置后,保存并退出Nginx配置文件。然后,使用命令重启Nginx服务,以使配置生效。 ``` sudo service nginx restart ``` 配置完成后,Nginx将开始通过HTTPS监听443端口,并使用配置SSL证书进行加密通信。请确保你的SSL证书有效,并按照最佳实践进行SSL/TLS配置

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值