连接到我们的服务器时出现以下错误:
GnuTLS 错误 -48:检测到证书中的密钥使用违规。无法连接到服务器
在运行带有所有更新的 Windows 10 专业版的 PC 上升级到 Filezilla v3.24.0 for Windows 后出现此问题。Mac 版本(也是 v3.24.0)正常工作,没有错误。最近没有对服务器进行任何更改。
连接信息:协议:FTP - 文件传输协议加密:需要通过 TLS 的显式 FTP 登录类型:要求输入密码
针对我们的服务器测试的 Ftptest.net 没有显示任何相关问题。普通 FTP(未加密)可以工作,但这不是一个好主意。我在 Google 上找不到解决此问题的方法。有什么建议?
这是一个服务器端问题,之前没有出现过,因为早期版本的 FileZilla 附带的 GnuTLS 版本没有进行此检查。
引用 Tim Kosse 在FileZilla 论坛主题中的帖子:
在任何情况下,问题都出在服务器的 X.509 证书链上:服务器证书本身或链中的另一个证书违反了密钥使用限制。例如,对签名具有密钥使用限制的证书不能用于验证 TLS 连接。请参阅 RFC 5280 的第 4.2.1.3 节。
这是 Microsoft IIS 证书生成的问题(但如果您使用另一种方法错误地生成了证书,也可能发生这种情况),因为它不允许将证书用于数字签名。OpenSSL 对此要轻松得多,并且不会因此而失败,因此它可以与其他应用程序一起使用。
在客户端,您可以禁用 TLS,降级到 FileZilla 的早期版本(由于潜在的安全风险,不建议使用这两种方式),或者使用其他客户端,该客户端现在使用其他库(例如 OpenSSL)。
显然,这需要在服务器端完成。如果您不是管理员,请将这些说明转发给他们。
根据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)
| 归档时间: |
|
| 查看次数: |
10751 次 |
| 最近记录: |