Pax*_*axz 3 powershell https ssl-certificate powershell-core
有没有一种方法可以调用Invoke-WebRequest,例如期望证书的给定公钥来验证我信任连接?
如果没有,是否有另一种方法来调用 webrequest 并且只信任网页而不信任颁发者或忽略证书检查?
我想加载一个带有Invoke-WebRequest. 我尝试通过 https 连接到网页,服务器提供了自签名证书。
由于我的证书存储中没有颁发者证书Invoke-WebRequest会抛出错误:
Invoke-WebRequest :根据验证程序,远程证书无效。
-Certificate-Parameter ofInvoke-WebRequest指定此证书PS:由于这个问题出现在 Powershell <5 和 Powershell Core 中,我将两者都标记了。
简短的回答,不,你绕不开它,当涉及到证书时,甚至不要尝试。客户端将首先查看证书和整个证书链,看看它是否可信。如果该链的任何部分(例如发行者)不受信任,则它不受信任。如果这个基本事实没有发生,那么就没有办法撤销证书。
对于自签名证书,由于它们不受信任,您是对的,客户端实际上只有 2 个选项:
-SkipCertificateCheck交换机连接。你无法绕过这个基本事实。我喜欢使用这个例子:自签名证书就像向客户交付一个炸弹形状的物体,上面贴着一张贴纸,上面写着“不是炸弹 - 相信我,我是@Paxz”。证书链就像拿着炸弹形状的物体,你看着送货司机,他们看起来很阴暗,同时看起来一点也不像@Paxz。然后,您可以选择忽略贴纸,或者接受我可以信任 @Paxz 和阴暗的送货司机。未经明确同意,您不能直接将包裹推过前门。当您信任整个链条时,贴纸上会写着“不是炸弹 - 相信我,我已经通过炸弹专家验证”,因为您信任炸弹专家,客户会毫无疑问地接受包裹。
| 归档时间: |
|
| 查看次数: |
5015 次 |
| 最近记录: |