【发布时间】:2019-01-10 23:23:29
【问题描述】:
我使用 Laravel 框架 5.4 版创建了一个内容管理系统 (CMS) 我们的服务器正在为 TLS 1.0 运行,我们网站的安全检查器在升级后升级到 TLS 1.2,他们说我的 laravel 框架现在不兼容 TLS 1.2。
问题: 如何让我的 laravel 代码兼容 TLS 1.2
谢谢。
【问题讨论】:
我使用 Laravel 框架 5.4 版创建了一个内容管理系统 (CMS) 我们的服务器正在为 TLS 1.0 运行,我们网站的安全检查器在升级后升级到 TLS 1.2,他们说我的 laravel 框架现在不兼容 TLS 1.2。
问题: 如何让我的 laravel 代码兼容 TLS 1.2
谢谢。
【问题讨论】:
我不认为 laravel 必须对 TLS 做任何事情。它必须是你的网络服务器(apache 或 nginx)。配置您的网络服务器以支持 TLS 1.2
对于 apache,你可以看看这个答案
https://serverfault.com/questions/314858/how-to-enable-tls-1-1-and-1-2-with-openssl-and-apache
对于 Nginx 你可以看看这个
https://askubuntu.com/questions/319192/how-to-enable-tls-1-2-in-nginx
您可能将 Guzzle 与 TSL 1.0 一起使用,请将其配置为支持 1.2。这是链接
How do we specify TLS/SSL options in Guzzle?
为了支持 mysql 使用 TLS 1.2 在my.cnf中这样配置它
[mysqld]
tls_version=TLSv1.1,TLSv1.2
详情请查看https://dev.mysql.com/doc/refman/5.7/en/encrypted-connection-protocols-ciphers.html
注意: 在 MySQL 5.7.10 之前,MySQL 仅支持 TLSv1,两者都支持 OpenSSL 和 yaSSL,不存在系统变量或客户端选项 指定允许的 TLS 协议。
【讨论】:
Guzzle 客户端是否使用 TLS 1.0,如果是,则强制它使用 TLS 1.2。更新了我的答案检查它。还要检查是否有任何使用 TLS 1.0 的 api,然后也将它们配置为使用 1.2