如何使用 IIS 產生有效證書

如何使用 IIS 產生有效證書

連接到我們的伺服器時出現以下錯誤:

GnuTLS 錯誤 -48:偵測到憑證中的金鑰使用違規。無法連接到伺服器

在執行 Windows 10 Pro(包含所有更新)的 PC 上升級至 Filezilla v3.24.0 for Windows 後,出現此問題。 Mac版本(也是v3.24.0)運作正常,沒有錯誤。最近沒有對伺服器進行任何更改。

連線資訊: 協定:FTP - 檔案傳輸協定 加密:需要基於 TLS 的明確 FTP 登入類型:要求密碼

Ftptest.net 針對我們的伺服器進行測試,未顯示任何相關問題。普通 FTP(未加密)可以工作,但這不是一個好主意。我在谷歌上找不到這個問題的解決方案。有什麼建議麼?

答案1

請參考 Filezilla 論壇上的這篇文章:https://forum.filezilla-project.org/viewtopic.php?t=42790

答案2

這是伺服器端問題,以前從未出現過,因為早期版本的 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

替換ftp.example.com為您的伺服器的主機名稱。

您將獲得指紋,複製該指紋。為私鑰設定密碼:

$password = ConvertTo-SecureString -String "password goes here" -Force -AsPlainText

現在導出它(您可以更改C:\cert.pfx為要保存的路徑,只需確保它以 結尾.pfx):

Export-PfxCertificate -cert cert:\LocalMachine\My\FINGERPRINT -FilePath C:\cert.pfx -Password $password

相關內容