如何在php中使用http身份验证卷曲SSL URL?

如何在php中使用http身份验证卷曲SSL URL?,php,html,authentication,ssl,curl,Php,Html,Authentication,Ssl,Curl,我需要从远程URL加载受保护的图像(Esxi拍摄的VM屏幕) 我在php中使用了以下代码: <?php $c = curl_init($url); $authString = 'User:Pass'; curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_setopt($c, CURLOPT_USERPWD, $authString); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, fa

我需要从远程URL加载受保护的图像(Esxi拍摄的VM屏幕)

我在php中使用了以下代码:

<?php
  $c = curl_init($url);
  $authString = 'User:Pass';
  curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($c, CURLOPT_USERPWD, $authString);
  curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

  $content = curl_exec($c);
  $contentType = curl_getinfo($c, CURLINFO_CONTENT_TYPE);
  header('Content-Type:'.$contentType);
  print $content;
?>

但它不工作,也没有加载任何内容(即使没有错误)

有什么问题吗?

是否有更好的方法直接显示身份验证后的图像

我只想用html显示图像

谢谢

--------------------样本访问

网址:

用户名:uname |密码:A@pass#二零二零年

输出如下:

HTTP身份验证与HTTP和HTTPS没有什么不同。例如,如果没有加载任何内容,则可能是HTTPS(防火墙?)无法访问目标,或者可能是其他内容(无法复制,因此无法确定)-但这与HTTP身份验证的方式无关。感谢@SteffenUllrich,如果我在提交用户和密码后使用web浏览器打开url,图像将显示。你确认我的上述代码了吗?所以我可以寻找其他选项。你的浏览器和你的PHP代码运行在同一个系统上吗?两者都使用系统代理吗(或者都不使用代理)?如果我尝试使用此URL,我会收到一个安全警告,因为CA不受信任,但您似乎忽略了curl代码中的此类问题。如果我尝试在命令行上使用curl和这个URL,如果我没有提供凭据,我会立即得到一个响应代码401(需要身份验证),但是如果凭据错误,在几秒钟内没有得到响应。这似乎是对服务器的强力保护,也许你也遇到过这种情况。我无法使用有效凭据进行测试,因为我没有任何。@M.Abooali:用户名和密码即使在浏览器中也不起作用。在浏览器中,经过几秒钟的反暴力延迟后,我发现了一个身份验证错误。PHP代码也是如此(在将
$ch
修改为
$c
并添加缺少的分号之后)。因此,至少对于无效凭据,行为是相同的。