powershell - 使用 Powershell 更改 SERVER 的 Home FTP SSL 证书
问题描述
首先,让我指出,我指的不是默认站点,而是服务器的“主页”(正如 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 证书,它可以导航,如下所示。
我尝试搜索一个命令,尝试了一些我认为可能有效的命令,但到目前为止都没有成功。
提前致谢
解决方案
所以,经过更多的翻找之后,我设法找到了一种方法。
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>
” )。再翻一番,我发现可以用来更新这个配置文件。瞧,我生成了上面(最后一行)更新的 PowerShell 脚本。<security>
<ssl>
appcmd
推荐阅读
- javascript - 使用 JSON 属性添加 ID
- postgresql - pg_dump 自定义格式文件包含 'DROP DATABASE'
- jquery - 我们不应该在生产环境中使用 jQuery Migrate 吗?
- python - Python:如何根据 2 列中的条件过滤掉行
- vue.js - NuxtJS 更改查询参数并重新加载页面
- javascript - React Hooks:更改多个项目的状态
- apache-spark - 不懂更新模式和水印
- google-bigquery - 围绕空值 BigQuery 的值之间的时间戳差异
- time-series - 有人在 quasardB 中使用过 OHLC 酒吧吗?
- create-react-app - 在 React 中,希望“react-scripts start”显示 eslint 警告