首先,讓我指出我指的不是默認站點,而是服務器的“主頁”(如 IIS 所指)。謝謝。
我有一個公共 IP 地址,并且在 IIS 3 網站和 2 個 FTP 站點中。沒問題,多虧了命名系結。但是,當涉及到“正確”選擇所述命名系結的路徑/證書時,IIS 有點問題。我不記得我使用的鏈接,但您必須在“家庭”級別和站點級別指定 FTP SSL 證書,以便建立安全的 FTP 連接。
我使用 Certify 來管理/更新我的 SSL 證書。由于上述問題;我創建了一個包含兩個子域的證書,并更新了一個 FTP 站點。然后我有一個成功運行的任務,它在完成時將新證書推送到另一個 FTP 站點(下面是檔案的副本)。
Import-Module WebAdministration
$configItem = 'ftpServer.security.ssl.serverCertHash'
$thumb = Get-ItemProperty "IIS:\Sites\FTP 1" -Name ftpServer.security.ssl.serverCertHash.Value
Set-ItemProperty "IIS:\Sites\Default Web Site" -Name $configItem -Value $thumb
Set-ItemProperty "IIS:\Sites\FTP 2" -Name $configItem -Value $thumb
正如您所看到的,它也為“默認網站”設定了 FTP SSL 證書 - 只是為了嘗試修復它。然而,這不是我需要的。我需要做的是設定來自 Powershell 的頂級“Home”FTP SSL 證書,如下圖所示。

我嘗試搜索命令,嘗試了一些我認為可能有效的命令,但到目前為止都沒有成功。
提前致謝
uj5u.com熱心網友回復:
所以,經過更多的翻找,我設法找到了一種方法。
TLDR;
新的 PowerShell 腳本是:
Import-Module WebAdministration
$configItem = 'ftpServer.security.ssl.serverCertHash'
$thumb = Get-ItemProperty "IIS:\Sites\FTP 1" -Name ftpServer.security.ssl.serverCertHash.Value
Set-ItemProperty "IIS:\Sites\FTP 2" -Name $configItem -Value $thumb
C:\windows\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.ssl.serverCertHash:"$thumb" /commit:apphost
因此,在研究時,我發現了一篇關于FTP Over SSL的 Microsoft 文章,它提到了 applicationHost.config(@BruceZhang 也提到了)。滾動瀏覽后,我發現<siteDefaults>哪個就在最后一個</site>. 在那里有對SSL證書的一個屬性(路徑“ <ftpServer>/ <security>/ <ssl>”)。更多的翻找,我發現appcmd可以用來更新這個組態檔。瞧,我生成了上面(最后一行)更新的 PowerShell 腳本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/348588.html
