You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinSCP命令行自动接受任意证书失败问题求助

解决WinSCP在SSIS调用中FTPS证书确认弹窗问题

我之前碰到过一模一样的情况,你的问题核心在于证书链不完整(日志里明确写了Unable to get local issuer certificate),再加上可能调用的是WinSCP的GUI版本而非纯命令行版,才导致-certificate=*没起到预期作用。下面是几个靠谱的解决方案:

1. 切换调用WinSCP命令行版本(winscp.com)

如果SSIS里调用的是winscp.exe(带界面的GUI版),哪怕脚本参数写得再对,它还是可能弹出交互窗口。你必须换成winscp.com——这是纯命令行的执行版本,完全支持无交互运行。

修改SSIS里的执行命令,比如:

winscp.com /script=C:\path\to\your\transfer_script.txt

2. 用具体证书指纹替代通配符*

通配符-certificate=*在证书链不完整的场景下经常失效,不如直接指定日志里给出的证书SHA1指纹更稳妥:
把你的open命令里的-certificate=*替换成:

-certificate="SHA1:##################"

把##################换成日志里Fingerprint (SHA1)后面的实际字符串,这样WinSCP会直接信任这个特定证书,不会再弹出确认窗口。

3. 导入缺失的中间CA证书到本地存储

日志里的错误本质是本地机器没信任该证书的颁发机构(中间CA)。你可以手动导出服务器的完整证书链,再导入到Windows证书存储里:

  • 先用WinSCP GUI连接一次服务器,在证书提示窗口点击「View Certificate」,导出包含中间CA的完整证书链
  • 打开certmgr.msc,把导出的证书导入到「中级证书颁发机构」或「受信任根证书颁发机构」
  • 之后再用命令行调用WinSCP时,就不会再触发证书确认提示了

4. 升级WinSCP到最新稳定版

旧版本的WinSCP对FTPS证书链的处理逻辑有bug,升级到最新稳定版可以解决不少兼容性问题,尤其是-certificate参数的生效逻辑。

另外要注意:hostkey=*是给SFTP用的主机密钥信任参数,和FTPS的证书完全是两回事,所以你之前同时用两个参数报错是正常的——FTPS场景下只需要-certificate相关参数。

内容的提问来源于stack exchange,提问作者chazbot7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:24:10