PowerShell远程使用https
  ymimIgn1vImn 2023年11月02日 36 0

PowerShell远程

PowerShell远程管理使用三种协议 1.http 2.https 3.ssh Windows server 默认启用的是http,在域环境下使用的是Kerberos身份验证。因为域内的主机互相信任,所以可以确认访问的远程主机不是仿冒的。可以放心的提交凭证,但是在工作组环境或者云上的主机就不那么确定了。如果访问的是仿冒的主机的,那么凭证就可以泄露。如果是生产环境,冒这样的风险显然没有必要。

可以DNS解析

如果是可以DNS解析的主机,购买一张或者申请一张免费的SSL证书,然后注册一个https端口,也是件很容易的事情。

无法DNS解析

如果没有公网IP、DNS服务器、域名。又想要https保护流量和确认主机,那么使用自签名证书也算不错的选择。 下面的步骤可以作为参考:

  1. 创建自签名证书
$cert = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName $env:COMPUTERNAME,<IP>
  1. 注册https端口
New-Item -Path WSMan:\Localhost\Listener -Transport HTTPS -Address * -CertificateThumbprint $cert.Thumbprint
  1. 导出证书
Export-Certificate -Cert $cert -Type CERT -FilePath c:\kite.cer
  1. 导入证书,创建证书机器、管理机器上都需要
Import-Certificate -FilePath C:\kitt.cer -CertStoreLocation Cert:\LocalMachine\Root\
  1. 防火墙放行流量
New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "Windows Remote Management (HTTPS-In)" -Profile Any -LocalPort 5986 -Protocol TCP

usessl.png

总结

远程成功连接需要满足以下条件: 我们设远程机器为S,管理主机为C。

  1. S,C都需要启用Winrm
  2. S创建自签名证书,DNS名为主机名和IP地址。
  3. S注册一个https端口
  4. S开启防火墙例外,放行入站5986端口流量。
  5. 在S,C上导入公钥到'受信任的根证书颁发机构'
  6. 在C连接S的命令中添加-UseSSL.
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  9JCEeX0Eg8g4   2023年11月25日   42   0   0 ednpython
  COAWCwhiWpsR   2023年12月10日   33   0   0 DNS
  COAWCwhiWpsR   2023年12月06日   30   0   0 DNS
  ozzp9aSSE46S   2023年11月30日   33   0   0 DNSIPPod
  YKMEHzdP8aoh   2023年12月11日   67   0   0 DNSidePod