Articles of curl

除非先前从浏览器访问,否则HTTPS地址/域的cUrl超时

我已经失去了几天这个问题,希望它激发了一个人的想法。 我使用Powershell脚本将几个系统集成在一起。 我连接到的两个服务(托pipe的JIRA)中的一个可以从我的本地系统访问,但是从我的一个虚拟机运行时脚本会失败。 我偶然发现,如果我在服务器上为该主机的HTTPS URL打开/刷新了一个浏览器,那么脚本将能够通过HTTPS访问API约20-30秒。 当我远程进入服务器并从PowerShell控制台尝试此操作时收到超时错误。 然后我validation了与cUrl(详细输出如下)一样的行为。 刷新具有该域的浏览器,然后允许在短时间内访问HTTPS URL。 在SSL协商之前,似乎是在初始连接上超时。 代表PoSH命令: Invoke-RestMethod -Method Get -Uri“ https://MYDOMAIN.atlassian.net/rest/api/2/issue/PLPT-1?fields=key,id,status ”-Headers @ {“Authorization”=“Basic” + [System.Convert] :: ToBase64String([System.Text.Encoding] :: UTF8.GetBytes('USERNAME:PASSWORD'))} 代表cUrl命令: curl.exe“ https://MYDOMAIN.atlassian.net/rest/api/2/issue/PLPT-1?fields=key,id,status ”-u“USERNAME:PASSWORD”-v -X GET 我已经做了很多挖掘,我很难过。 我尝试过使用Wireshark进行更深入的挖掘,但是使用数据包嗅探器已经有好几年了,而且我很生疏,不得不学习UI。 故障排除: 以下是我在尝试隔离问题时所能想到的问题/答案: 它是PowerShell? 使用cUrl也会超时 这一切都是HTTPS? https://google.com/正常工作没有超时 https://localhost/…没有超时工作正常 这是一个通过浏览器访问过JIRA的系统吗? 我证实我的家庭桌面可以通过PoSH连接,尽pipe从来没有访问过JIRA 它是主机,DC还是OS? 这是Azure中的2008 R2 VM,我validation了PoSH和cUrl命令在运行2008 R2的第二个Azure VM中正常工作 防火墙,防病毒? 禁用防病毒和防火墙,cUrl + PoSH仍然超时 用户代理? 包括用户代理在问题系统或工作系统上并没有什么不同 小提琴手说什么? […]

CURL PHP无法parsing主机

我正在尝试用CURL做请求的PHP脚本。 但是我得到错误无法parsing主机'example.com' $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER , true); curl_setopt($ch, CURLOPT_URL, 'https://example.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec( $ch ); if($result === false) { echo 'Error Curl : ' . curl_error($ch); } else { echo 'OK'; } 所以我开始search这个问题,我尝试用ping,curl(CLI)和telnet(显然使用libc6就像curl)做服务器的请求,nslookup也能正常工作 一切工作正常。 那么问题在哪里? 谢谢您的帮助 Debian Wheezy libc6 2.19-18 PHP 5.6.8-1(使用php-fpm) nginx的

curl错误后添加SSL证书:“无法获取本地颁发者证书”

我试图访问一个合作伙伴的SOAP API,为了这个目标,我做了一个CSR并收到了一个CRT。 我用我的钥匙和CRT制作了一个PEM文件: cat mycert.crt mykey.key > mycertandkey.pem 当我尝试用curl来打这个服务时: curl –verbose –cert mycertandkey.pem https://partner/service?wsdl * Hostname was NOT found in DNS cache * Trying IP.IP.IP.IP… * Connected to PARTNER (IP.IP.IP.IP) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, […]

带有卷标的NTLM返回401

目标 :连接到Exchange服务器(EWS) 方法 :cURL 问题 :无法获得身份validation(NTLM),请求返回401 似乎有一个旧的,有据可查的2问题,从cURL从OpenSSL转移到NSS开始。 我读到NTLM的实现依赖于OpenSSL,因此这一举动打破了NTLM身份validation。 这个问题如下所示,但重要的部分似乎是返回401和下面的gss_init_sec_context() 。 我不明白的是我目前的版本: 根据https://launchpad.net/ubuntu/+source/curl/7.22.0-3ubuntu4有一个OpenSSL变种 根据同一链接支持NTLM 其实根据下面的日志使用这个变种(而不是NSS)(它说libcurl/7.22.0 OpenSSL ) 根据以上几点,不应该被链接的bug所困扰。 但是IS受到了影响,正如我得到401的事实所显示的那样 我不确定如何解决这个问题。 我可以find很多旧的(大部分是2010年)提到这个问题,但没有新的东西,肯定没有一个溶剂。 我知道提供的参考(见2 )表明,这可能与旧版本(7.19),但我不能(也不愿意)降级到该版本。 Exchange通信(EWS)的几个实现使用cURL来检索EWS文件(wsdl等),所以我确定必须有一个工作方法,但我找不到它。 有没有人有线索我可以做什么? 我还有另外一个错误吗?我是否解释了错误的事实,这个情况和链接中提供的情况是一样的,它永远不会被修复吗? 1错误是这样的: curl https://*DOMAIN*/Exchange.asmx -w %{http_code} –ntlm -u *USERNAME* –verbose –show-error Enter host password for user '*USERNAME': * About to connect() to DOMAIN port 443 (#0) * Trying IP… connected * […]

curl为什么会给$ _SERVER 给浏览器一个不同的响应?

我有一个简单的testingPHP页面: <?php echo $_SERVER['HTTP_HOST'] . '<br/>'; echo $_SERVER['REQUEST_URI']; ?> 当我用浏览器访问这个页面(我testing过Chrome和链接)时,它给了我期望的输出: 10.1.25.222 /test.php 但是当我用curl 10.1.25.222/test.php访问它时: 10.1.25.222<br/>HTTP://10.1.25.222/test.php 给我HTTP_HOST我期待,但不是我期待的REQUEST_URI

curl GET文件列表限制为1000

存储服务器帐户中有超过1000个文件,当使用curl显示文件列表时,输出仅限于前1000个。 只是为了testing,我已经删除了一个在GET列表中显示的文件,然后再次进行了一次GET,这一次curl确实显示了1000个文件和一个来自完整列表的附加文件。 有没有办法告诉curl显示完整列表,而不是限制到1000? 编辑: curl -X GET -u <user>:<passwd> <url-full-path-of-container> curl版本:curl 7.29.0(x86_64-redhat-linux-gnu) 我不确定问题是否在服务器端,因为我没有真正的完整权限来检查..也可以在服务器端吗?

在chrome中工作的SSL证书,但不是openssl s_client或curl

Google chromes更新至版本58几天前开始使我的自签名证书无效。 这是抱怨失踪subjectAltNames 。 我做了一些研究,并尝试了几个build议(这将不起作用),但后来发现这个职位 ,我唯一可以工作。 还是我? 现在接受我的新生成和import的证书,我正在路上, 直到我在我的PHP web应用程序中打开一个页面,该页面需要在同一个开发机器上从另一个微型Web服务加载数据。 stream_socket_client():SSL操作失败,代码为1. OpenSSL错误消息:错误:14090086:SSL例程:ssl3_get_server_certificate: 现在我一直在用google和这个修补程序大约4个小时,只是无法绕过它。 题 为什么铬接受我的证书。 无论如何curl , openssl s_client所有的工具unable to verify the first certificate或invalid certificate ? 我试图通过证书作为参数,但仍然显然无效。 用curl和openssl调用证书文件作为参数继续给我这个错误 SSL证书validation结果:无法获得本地颁发者证书(20), 我想在一天结束的时候我会完全秃顶的。 笔记 虚拟机是我的本地开发环境,所以我确实有多个域,有自己的证书和密钥 虚拟机位于IP 192.168.33.10。 这意味着chrome不能访问localhost。 然而,curl和openssl s_clinet试图访问locahost 服务器是运行ubuntu 14.04的虚拟机 在主机上安装带有MMC(微软pipe理控制台)的自签名证书 错误肯定来自试图访问Web服务的客户端类。 我试图通过证书作为参数,但仍然显然无效。 我完全意识到,我可以将validation对象设置为false,或者将请求传递给请求,但我从中没有学到任何东西。 SSL会话:协议:TLSv1.2 运行sudo dpkg-reconfigure ca-certificates来更新证书 已经运行sudo update_ca_ccertificates 我已经达到了9000的挫折水平 恢复更新 我重新生成了v3扩展closures的新证书,并返回chrome告诉我subjectAltName丢失,但curl正在工作。 我需要弄清楚如何使curl和chrome都能接受的证书成为现实。

将带客户端证书的FTPScurl到vsftpd

我想通过用户名+密码或客户端证书来validationFTP客户端。 只有FTPS是允许的。 用户/密码的作品,但在curltesting(我没有另一种select)和客户端证书,我需要传递一个用户。 通过提供证书进行身份validation不是技术上的可行吗? 的vsftpd.conf passwd_chroot_enable=YES chroot_local_user=YES ssl_enable=YES rsa_cert_file=usrlocal/ssl/certs/vsftpd.pem force_local_data_ssl=YES force_local_logins_ssl=YES 用curl -v -k -E client-crt.pem –ftp-ssl-reqd ftp://server:21/testfiletestingcurl -v -k -E client-crt.pem –ftp-ssl-reqd ftp://server:21/testfile输出结果是: * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Request CERT (13): * SSLv3, TLS handshake, […]

使用OpenSSL客户端连接到URL的工作,但curl失败

我有一个CentOS 5.9服务器,我需要将SSL连接到另一台服务器。 远程服务器拥有最终由GeoTrust Global CA签署的证书。 在撰写本文时,此证书是GeoTrust下载页面上列出的第二个证书。 我得到不一致的结果,取决于我使用OpenSSL还是curl来build立连接: openssl s_client -connect <server>:443 -CAfile /path/to/GeoTrustCA.pem 工作正常,但是 curl –cacert /path/to/GeoTrustCA.pem https://<server>/ 标准的“无法validation证书”错误失败。 以下是我正在使用的工具的详细信息: $ curl –version curl 7.15.5 (i386-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 Protocols: tftp ftp telnet dict ldap http file https ftps Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 和 $ openssl version OpenSSL 0.9.8e-fips-rhel5 01 […]

如何在Linux上使用最新的cURL包从源代码安装PHP?

我只需要在我的web服务器上使用PHP的最新cURL版本(7.21.3)。 (与具体的错误修复有关) 在大多数当前的Linux版本库中默认情况下是不可用的。 (Ubuntu的Natty Narwhal是唯一的,它仍然处于testing阶段) – 所以我不能简单地运行“aptitude install php5-curl”或类似的安装它(最新版本的cURL)。 如何安装最新的PHP + cURL包? 是否像在某个库中更改cURL的下载文件一样简单? (即将文本文件的条目从http://curl.haxx.se/download/curl-7.21.0.tar.gz更改为http://curl.haxx.se/download/curl-7.21.3。 tar.gz或其他东西..?) 基本上我需要在Linux上运行PHP的最新的cURL库。 你个人如何去做呢?