FileZilla 报告“GnuTLS 错误 -48:检测到证书中的密钥使用违规”

San*_*ngs 5 ftp ssl filezilla

连接到我们的服务器时出现以下错误:

GnuTLS 错误 -48:检测到证书中的密钥使用违规。无法连接到服务器

在运行带有所有更新的 Windows 10 专业版的 PC 上升级到 Filezilla v3.24.0 for Windows 后出现此问题。Mac 版本(也是 v3.24.0)正常工作,没有错误。最近没有对服务器进行任何更改。

连接信息:协议:FTP - 文件传输协议加密:需要通过 TLS 的显式 FTP 登录类型:要求输入密码

针对我们的服务器测试的 Ftptest.net 没有显示任何相关问题。普通 FTP(未加密)可以工作,但这不是一个好主意。我在 Google 上找不到解决此问题的方法。有什么建议?

nyu*_*a7h 7

这是一个服务器端问题,之前没有出现过,因为早期版本的 FileZilla 附带的 GnuTLS 版本没有进行此检查。

引用 Tim Kosse 在FileZilla 论坛主题中的帖子

在任何情况下,问题都出在服务器的 X.509 证书链上:服务器证书本身或链中的另一个证书违反了密钥使用限制。例如,对签名具有密钥使用限制的证书不能用于验证 TLS 连接。请参阅 RFC 5280 的第 4.2.1.3 节。

这是 Microsoft IIS 证书生成的问题(但如果您使用另一种方法错误地生成了证书,也可能发生这种情况),因为它不允许将证书用于数字签名。OpenSSL 对此要轻松得多,并且不会因此而失败,因此它可以与其他应用程序一起使用。

在客户端,您可以禁用 TLS,降级到 FileZilla 的早期版本(由于潜在的安全风险,不建议使用这两种方式),或者使用其他客户端,该客户端现在使用其他库(例如 OpenSSL)。

如何使用 IIS 生成有效证书

显然,这需要在服务器端完成。如果您不是管理员,请将这些说明转发给他们。

根据IIS 论坛中的帖子,您可以改为使用 PowerShell 生成证书,直到 Microsoft 修复该问题:

New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -dnsname ftp.example.com
Run Code Online (Sandbox Code Playgroud)

替换ftp.example.com为您服务器的主机名。

你会得到一个指纹,复制那个。为私钥设置密码:

$password = ConvertTo-SecureString -String "password goes here" -Force -AsPlainText
Run Code Online (Sandbox Code Playgroud)

现在导出它(您可以更改C:\cert.pfx为要保存到的路径,只需确保它以 结尾.pfx):

Export-PfxCertificate -cert cert:\LocalMachine\My\FINGERPRINT -FilePath C:\cert.pfx -Password $password
Run Code Online (Sandbox Code Playgroud)


小智 0

请参阅 Filezilla 论坛上的这篇文章:https://forum.filezilla-project.org/viewtopic.php ?t=42790