【系统安全】安全扫描时候提示The connection to this site is encrypted and authenticated using TLS 1.2.ECDHE RSA with P-256,and AES 128 GCM
- 工作小总结
- 时间:2023-07-07 09:53
- 2412人已阅读
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
在做安全扫描时候,错误提示如下:The connection to this site is encrypted and authenticated using TLS 1.2.ECDHE RSA with P-256,and AES 128 GCM。怎么解决?
如果使用的是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的配置不匹配。要解决这个问题,您可以尝试以下步骤:
确保您的nginx版本支持TLS 1.3。只有从OpenSSL 1.1.1版本及以上的版本才可以支持TLS 1.3。您可以通过运行
nginx -V
命令来查看nginx编译时使用的OpenSSL版本。检查SSL库的支持情况。您需要确保您的SSL库(通常是OpenSSL)正确安装并启用TLS 1.3支持。如果不是最新版,请升级SSL库。
检查SSL库的加密算法支持情况。您可以通过运行以下命令来检查SSL库支持的加密算法:
openssl ciphers -v
确保SSL库支持ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256等密码套件。
检查nginx配置文件中的其他相关配置项。请确保您没有在其他地方覆盖了ssl_protocols和ssl_ciphers配置项,例如在server或location块中。
重新启动nginx服务以使配置生效。
如果您仍然遇到问题,建议您检查操作系统的SSL库配置和nginx的编译配置是否正确,并确保更新到最新的nginx和SSL库版本。
扩展:
问题1:怎么通过nginx -V查看使用的OpenSSL版本?
问题2:怎么查看SSL库是否支持TLS1.3?如果不支持怎么升级SSL库?
问题1:通过 nginx -V
命令查看使用的 OpenSSL 版本的步骤如下:
打开终端或命令提示符。
运行
nginx -V
命令。在输出的结果中,您将找到类似于
built with OpenSSL
或built with ... TLSv1.3
的信息。其中包含了使用的 OpenSSL 版本。
问题2:要检查 SSL 库是否支持 TLS 1.3,可以按照下面的步骤进行:
打开终端或命令提示符。
运行以下命令来检查 SSL 库支持的 TLS 版本:
openssl version -a
在输出的结果中,您将看到类似于
TLS Versions: TLSv1.2 ...
的信息。在此信息中,如果TLSv1.3
也列出,则表示 SSL 库支持 TLS 1.3。
如果 SSL 库不支持 TLS 1.3,您可以考虑以下选项来升级 SSL 库:
更新操作系统:通过更新操作系统,可以获取更高版本的 SSL 库,从而获得对 TLS 1.3 的支持。请参考操作系统的文档或官方网站获取相关信息。
编译安装最新版本的 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,您可以考虑以下几个步骤:
检查操作系统更新:首先,确保您的操作系统是最新的,并且通过更新操作系统以获取最新版本的 OpenSSL。
下载和编译最新版 OpenSSL:您可以从 OpenSSL 的官方网站(https://www.openssl.org/source/)下载最新版本的 OpenSSL 源代码。
解压并编译 OpenSSL:将下载的源代码解压缩到您选择的目录,然后按照 OpenSSL 的官方文档中提供的方法进行编译和安装。
编译和安装 Nginx:在编译和安装 Nginx 之前,确定您将在配置中指定新安装的 OpenSSL 的路径。您可以使用以下命令来配置 Nginx:
./configure --with-openssl=/path/to/openssl
将
/path/to/openssl
替换为您实际安装的 OpenSSL 的路径。完成编译和安装:继续使用
make
和make install
命令来完成 Nginx 的编译和安装过程。重启 Nginx:在成功安装后,使用适当的方法重启 Nginx,以使其使用新的 OpenSSL 版本。
请注意,在进行任何对服务器配置和软件进行更改之前,请确保做好相关文件和配置的备份,并测试这些更改是否正常工作。
扩展3:
升级Openssl后,在原由的Nginx怎么指定新安装的Openssl的路径?不重新编译?
如果您已经升级了 OpenSSL,并且不想重新编译 Nginx,则可以使用以下步骤指定新安装的 OpenSSL 路径:
查找新安装的 OpenSSL 路径:确定您已经成功升级的 OpenSSL 安装位置。您可以使用以下命令来查找:
Copy
which openssl
或者
Copy
whereis openssl
备份原始配置文件:在进行任何更改之前,请始终备份 Nginx 的配置文件。您可以使用以下命令对配置文件进行备份:
Copy
cp /path/to/nginx.conf /path/to/nginx.conf.backup
编辑配置文件:打开 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 的实际路径。保存配置文件并退出。
重新启动 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
)并进行如下修改:
启用 TLS 1.2:在
ssl_protocols
配置项中,确保只启用了 TLS 1.2,并禁用了较旧的 TLS 版本,如 TLS 1.0 和 TLS 1.1。示例配置如下:ssl_protocols TLSv1.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...
配置 ECDHE 密钥交换算法:在
ssl_ecdh_curve
配置项中,指定支持的曲线类型。示例配置如下:ssl_ecdh_curve prime256v1;
配置 AES GCM 加密算法:在
ssl_prefer_server_ciphers
配置项中,启用优先推荐服务器密码套件。示例配置如下:ssl_prefer_server_ciphers on;
完成以上修改后,保存并关闭配置文件。
最后,重新启动 Nginx 服务使配置生效:
sudo service nginx restart
现在,您的 Nginx 将使用更新的 OpenSSL 版本,并采用更安全的 TLS 版本和密码套件,从而解决这个安全问题。请确保您的证书和密钥与新的 Nginx 配置兼容,并正确指定其路径。
上一篇: token为什么喜欢放header里?为什么不怕被盗取?
下一篇: Redis缓存同步1-策略介绍