gpt4 book ai didi

powershell - 在 Invoke-WebRequest 调用中信任自签名证书

转载 作者:行者123 更新时间:2023-12-02 23:00:49 24 4
gpt4 key购买 nike



有什么办法可以调用Invoke-WebRequest并且例如期望证书的给定公钥来验证我信任连接?

如果没有,是否有另一种方法来调用 webrequest 并且只信任网页而不信任发行者或忽略证书检查?

问题

我想加载一个带有 Invoke-WebRequest 的网页.我尝试通过 https 连接到网页,服务器提供了一个自签名证书。

由于我的证书存储中没有颁发者证书 Invoke-WebRequest会抛出错误:

Invoke-WebRequest : The remote certificate is invalid according to the validation procedure.



已知的解决方法
  • 使用 -SkipCertificateCheck -Powershell v6.0.0 中添加的开关ref
  • 添加新的证书策略以信任所有证书 ref
  • 信任颁发者-证书

  • 我尝试过但没有成功
  • 将网页证书添加到证书库而不信任颁发者证书
  • 将网页证书添加到证书存储并使用 -Certificate -参数Invoke-WebRequest指定此证书

  • PS:由于这个问题出现在 Powershell <5 和 Powershell Core 中,我将两者都标记了。

    最佳答案

    简短的回答,不,你绕不开它,当涉及到证书时,甚至不要尝试。客户端将首先查看证书和整个证书链,看看它是否可信。如果该链的任何部分(例如发行者)不受信任,则它不受信任。如果这个基本事实没有发生,那么就没有办法撤销证书。

    对于自签名证书,由于它们不受信任,您是对的,客户端实际上只有 2 个选项:

  • 忽略证书来源,盲目连接-SkipCertificateCheck转变。
  • 接受可以信任颁发者和全链并导入证书

  • 你无法绕过这个基本事实。我喜欢使用这个例子:自签名证书就像向客户交付一个炸弹形状的物体,上面贴着一张贴纸,上面写着“不是炸弹 - 相信我,我是@Paxz”。证书链就像拿着炸弹形状的物体,你看着送货司机,他们看起来很阴暗,同时看起来一点也不像@Paxz。然后,您可以选择忽略贴纸,或者接受我可以信任 @Paxz 和阴暗的送货司机。未经明确同意,您不能直接将包裹推过前门。当您信任整个链条时,贴纸会写着“不是炸弹 - 相信我,我已通过炸弹专家验证”,因为您信任炸弹专家,客户将毫无疑问地接受包裹。

    关于powershell - 在 Invoke-WebRequest 调用中信任自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56257442/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com