【系统安全】安全扫描时候提示The connection to this site is encrypted and authenticated using TLS 1.2.ECDHE RSA with P-256,and AES 128 GCM

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-07-07 09:53
  • 1730人已阅读
简介 在做安全扫描时候,错误提示如下:TheconnectiontothissiteisencryptedandauthenticatedusingTLS1.2.ECDHERSAwithP-256,andAES128GCM。怎么解决?如果使用的是Nginx那么在Nginx的配置文件中做修改。凯哥这里使用的是Nginx。那么就以Nginx作为案例来讲。首先找到Nginx配置文件,在http{}模块中添加如

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

在做安全扫描时候,错误提示如下:The connection to this site is encrypted and authenticated using TLS 1.2.ECDHE RSA with P-256,and AES 128 GCM。怎么解决?

f16d57ba3aeabcc5bfe187a0986389d4.png

如果使用的是Nginx那么在Nginx的配置文件中做修改。凯哥这里使用的是Nginx。那么就以Nginx作为案例来讲。

首先找到Nginx配置文件,在http{}模块中添加如下配置:

ssl_protocols TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

导致连接使用TLS 1.2和AES 128 GCM的原因可能是因为SSL库和nginx的配置不匹配。要解决这个问题,您可以尝试以下步骤:

  1. 确保您的nginx版本支持TLS 1.3。只有从OpenSSL 1.1.1版本及以上的版本才可以支持TLS 1.3。您可以通过运行nginx -V命令来查看nginx编译时使用的OpenSSL版本。

  2. 检查SSL库的支持情况。您需要确保您的SSL库(通常是OpenSSL)正确安装并启用TLS 1.3支持。如果不是最新版,请升级SSL库。

  3. 检查SSL库的加密算法支持情况。您可以通过运行以下命令来检查SSL库支持的加密算法:

openssl ciphers -v
  1. 确保SSL库支持ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256等密码套件。

  2. 检查nginx配置文件中的其他相关配置项。请确保您没有在其他地方覆盖了ssl_protocols和ssl_ciphers配置项,例如在server或location块中。

  3. 重新启动nginx服务以使配置生效。

如果您仍然遇到问题,建议您检查操作系统的SSL库配置和nginx的编译配置是否正确,并确保更新到最新的nginx和SSL库版本。

扩展:

问题1:怎么通过nginx -V查看使用的OpenSSL版本?

 问题2:怎么查看SSL库是否支持TLS1.3?如果不支持怎么升级SSL库?

问题1:通过 nginx -V 命令查看使用的 OpenSSL 版本的步骤如下:

  1. 打开终端或命令提示符。

  2. 运行 nginx -V 命令。

  3. 在输出的结果中,您将找到类似于 built with OpenSSL 或 built with ... TLSv1.3 的信息。其中包含了使用的 OpenSSL 版本。

问题2:要检查 SSL 库是否支持 TLS 1.3,可以按照下面的步骤进行:

  1. 打开终端或命令提示符。

  2. 运行以下命令来检查 SSL 库支持的 TLS 版本:

  3. openssl version -a

  1. 在输出的结果中,您将看到类似于 TLS Versions: TLSv1.2 ... 的信息。在此信息中,如果 TLSv1.3 也列出,则表示 SSL 库支持 TLS 1.3。

如果 SSL 库不支持 TLS 1.3,您可以考虑以下选项来升级 SSL 库:

  1. 更新操作系统:通过更新操作系统,可以获取更高版本的 SSL 库,从而获得对 TLS 1.3 的支持。请参考操作系统的文档或官方网站获取相关信息。

  2. 编译安装最新版本的 OpenSSL:您可以从 OpenSSL 的官方网站下载最新版本的源代码,并按照它们的文档进行编译和安装。这将为您提供一个支持 TLS 1.3 的新版 SSL 库。

注意:升级 SSL 库需要谨慎操作,并确保在升级之前备份相关文件和配置。此外,升级可能需要重新编译和配置其他使用了 SSL 的软件。


扩展2:


nginx -V后查看到 nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled 根据输出的OpenSSL是否只支持1.0.2k-fips? 怎么升级支持1.3版本?

根据输出的结果,您的 nginx 使用的是 OpenSSL 1.0.2k-fips 版本,该版本不支持 TLS 1.3。要升级以支持 TLS 1.3,您可以考虑以下几个步骤:

  1. 检查操作系统更新:首先,确保您的操作系统是最新的,并且通过更新操作系统以获取最新版本的 OpenSSL。

  2. 下载和编译最新版 OpenSSL:您可以从 OpenSSL 的官方网站(https://www.openssl.org/source/)下载最新版本的 OpenSSL 源代码。

  3. 解压并编译 OpenSSL:将下载的源代码解压缩到您选择的目录,然后按照 OpenSSL 的官方文档中提供的方法进行编译和安装。

  4. 编译和安装 Nginx:在编译和安装 Nginx 之前,确定您将在配置中指定新安装的 OpenSSL 的路径。您可以使用以下命令来配置 Nginx:


    ./configure --with-openssl=/path/to/openssl

    将 /path/to/openssl 替换为您实际安装的 OpenSSL 的路径。

  5. 完成编译和安装:继续使用 make 和 make install 命令来完成 Nginx 的编译和安装过程。

  6. 重启 Nginx:在成功安装后,使用适当的方法重启 Nginx,以使其使用新的 OpenSSL 版本。

请注意,在进行任何对服务器配置和软件进行更改之前,请确保做好相关文件和配置的备份,并测试这些更改是否正常工作。

扩展3:

升级Openssl后,在原由的Nginx怎么指定新安装的Openssl的路径?不重新编译?

如果您已经升级了 OpenSSL,并且不想重新编译 Nginx,则可以使用以下步骤指定新安装的 OpenSSL 路径:

  1. 查找新安装的 OpenSSL 路径:确定您已经成功升级的 OpenSSL 安装位置。您可以使用以下命令来查找:

    Copy

    which openssl

    或者

    Copy

    whereis openssl
  2. 备份原始配置文件:在进行任何更改之前,请始终备份 Nginx 的配置文件。您可以使用以下命令对配置文件进行备份:

    Copy

    cp /path/to/nginx.conf /path/to/nginx.conf.backup
  3. 编辑配置文件:打开 Nginx 的配置文件(通常是 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf),并找到 ssl_certificate 和 ssl_certificate_key 指令。

    将以下行:


    ssl_certificate /path/to/old/ssl_certificate;
    ssl_certificate_key /path/to/old/ssl_certificate_key;

    更新为新安装 OpenSSL 的路径:


    ssl_certificate /path/to/new/ssl_certificate;
    ssl_certificate_key /path/to/new/ssl_certificate_key;

    将 /path/to/new/ssl_certificate 和 /path/to/new/ssl_certificate_key 替换为您新安装 OpenSSL 的实际路径。

  4. 保存配置文件并退出。

  5. 重新启动 Nginx:使用适当的方法重新启动 Nginx 以使更改生效。可以使用以下命令重新启动 Nginx:


    sudo service nginx restart

    或者


    sudo systemctl restart nginx

请确保您在更改配置文件之前备份了原始配置,并且在重新启动 Nginx 之前先进行语法检查以确保配置正确无误。


扩展4:

当前系统中的openssl版本号:OpenSSL 3.0.5 5 Jul 2022 (Library: OpenSSL 3.0.5 5 Jul 2022)。nginx -V后查看到 nginx version: nginx/1.16.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled 。怎么修改Nginx的配置文件才可以解决The connection to this site is encrypted and authenticated using TLS 1.2.ECDHE RSA with P-256,and AES 128 GCM这个安全问题?

要解决该安全问题,您需要将 Nginx 的配置文件进行相应的更改,以启用更高版本的 TLS 和更强的密码套件。

首先,您需要更新 Nginx 版本,因为当前版本(1.16.1)使用的 OpenSSL 版本(1.0.2k)已经过时。您可以从 Nginx 官方网站下载最新版本的 Nginx,并按照其提供的安装指南进行安装。新版本的 Nginx 将与更新的 OpenSSL 版本一起提供,从而支持更安全的加密算法和 TLS 版本。

在更新了 Nginx 版本后,您需要打开 Nginx 的配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)并进行如下修改:

  1. 启用 TLS 1.2:在 ssl_protocols 配置项中,确保只启用了 TLS 1.2,并禁用了较旧的 TLS 版本,如 TLS 1.0 和 TLS 1.1。示例配置如下:


    ssl_protocols TLSv1.2;
  2. 启用更安全的密码套件:在 ssl_ciphers 配置项中,使用更安全的密码套件来替代旧的默认套件。示例配置如下:

    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA25...
  3. 配置 ECDHE 密钥交换算法:在 ssl_ecdh_curve 配置项中,指定支持的曲线类型。示例配置如下:


    ssl_ecdh_curve prime256v1;
  4. 配置 AES GCM 加密算法:在 ssl_prefer_server_ciphers 配置项中,启用优先推荐服务器密码套件。示例配置如下:


    ssl_prefer_server_ciphers on;

完成以上修改后,保存并关闭配置文件。

最后,重新启动 Nginx 服务使配置生效:


sudo service nginx restart

现在,您的 Nginx 将使用更新的 OpenSSL 版本,并采用更安全的 TLS 版本和密码套件,从而解决这个安全问题。请确保您的证书和密钥与新的 Nginx 配置兼容,并正确指定其路径。



TopTop