SSL证书警告打破IE自动化

时间:2018-01-16 23:36:41

标签: powershell internet-explorer ssl

我需要在CUCM(Cisco Unified Communications Manager)上自动执行某些操作,因此我使用的是PowerShell InternetExplorer.Application

但是,我发现了与SSL错误相关的问题:

enter image description here

因此,关注this tutorial,我首先找到转到网页链接并发送点击操作 - 这非常有效。

但是,当下一页加载时(我需要输入登录详细信息),我的脚本无法使用

弹出登录字段
  

财产的价值'在这个对象上找不到。验证该属性是否存在且可以   被设定。   在C:\ temp \ termTEST \ TermForm.ps1:34 char:2   + $ document.getelementsbyname(" j_username")[0] .value =' sebastian.k ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidOperation:(:) [],RuntimeException       + FullyQualifiedErrorId:PropertyAssignmentException

但我可以确认登录字段是否存在,因此$ie$document对象似乎得到了回收或类似的东西,这意味着我无法访问这些字段。

我怎样才能克服这个?

剧本:

$ie = New-Object -ComObject internetexplorer.application
$ie.navigate("https://10.40.193.31/ccmadmin/phoneFindList.do")
$ie.visible = $true
while ($ie.busy) { sleep 1 }
$global:document = $ie.document
#A while loop to check for IE certificate errors on the page and continue loading the page anyway if there are any
while ($document.readyState -ne 'complete') { sleep -Milliseconds 100 }
if ($document.getelementbyID("overridelink"))
{
    $document.getelementbyid("overridelink").click();
    while ($ie.busy) { sleep 1 }
    $document;
    while ($document.readyState -ne 'complete') { sleep -Milliseconds 100 }
}
#Loading the credentials from the queryCredentials function to log onto the portal
$document.getelementsbyname("j_username")[0].value = 'Bassie' # ERROR OCCURS HERE
$document.getelementsbyname("j_password")[0].value = 'password'
$document.getelementbyid("logonform").submit()

如果我手动单步执行代码并物理点击继续链接(导致if语句跳过),那么登录字段就会很好填充,所以这肯定是相关的到证书错误消息。

我尝试将证书安装到我的机器上,但由于某种原因,我仍然收到消息。还联系了我们的支持团队更新证书,但他们拒绝帮助我,所以我独自一人。

1 个答案:

答案 0 :(得分:0)

以下是一些事实:

  1. IE自动化将无效,除非该网站不受信任(在受信任的站点区域中)并且具有由受信任的机构签署的证书
  2. 证书应该提供给fqdn或主机名,而不是ip地址
  3. 运行IE / Powershell的客户端,需要将签名链中涉及的根CA安装在用户证书中>受信任的根证书颁发机构。
  4. 如果您申请并购买ssl证书(它们并不昂贵)会更容易

    以下是您可以做的事情:

    1. 为此https://10.40.193.31网站提供主机名,即cucm.company.org
    2. 创建证书请求csr文件和私钥,如下所示

      openssl req -nodes -new -newkey rsa:4096 -subj' / C = AU / O = Company Limited / CN = cucm.company.org / OU = Phones / L = Sydney / ST = New South威尔士/' -keyout cucm.company.org.key -out cucm.company.org.csr

    3. 提出请求,获得发布

    4. 按照与此类似的说明将Web服务器sll证书安装到CUCM网站:https://supportforums.cisco.com/t5/collaboration-voice-and-video/cucm-uploading-ccmadmin-web-gui-certificates/ta-p/3120166

    5. https://cucm.company.org.csr添加到IE中的可信站点区域