Articles of curl

PHP cURL调用返回错误56与NSS错误-12195

我有一个内部服务器(在我的networking内部),我从外部服务器进行REST API调用。 我不知道是否有帮助,但外部服务器运行php 5.3.6与cURL 7.19.7 。 为了使安全(除了一个防火墙框,限制了外部IP地址,可以呼叫我的内部服务器只有我的外部服务器的静态IP地址),我为我的内部服务器生成一个自签名的SSL服务器证书 。 我还生成了一个客户端证书 ,在拨打电话时由我的外部服务器使用。 调用正在使用PHP的cURL库 。 进行调用的页面如下所示(此页面是作为“概念certificate”创build的,以查看调用实际可以进行): <?php $mycurl = curl_init(); $verbose = fopen('curl_error_log','a'); $url_site = 'https://internal.server.com/api_test.php'; $options = array( CURLOPT_HEADER => false ,CURLOPT_RETURNTRANSFER => true ,CURLOPT_VERBOSE => true ,CURLOPT_STDERR => $verbose ,CURLOPT_HTTPHEADER => array('Accept: application/json') ,CURLOPT_CAINFO => realpath('/certs/server/certs.pem') ,CURLOPT_CAPATH => realpath('/certs/server') ,CURLOPT_SSL_VERIFYPEER => true ,CURLOPT_SSL_VERIFYHOST => 2 ,CURLOPT_SSLCERT […]

在systemd中依赖项curl时,获取无法parsing主机

我正在使用CoreOS与云初始化,我试图curl法兰绒。 我有一个单位档案: [Unit] Description=Run flannel Documentation=https://github.com/coreos/flannel Requires=etcd2.service After=etcd2.service [Service] ExecStartPre=/usr/bin/curl -L -o /opt/bin/flannel-0.5.1-linux-amd64.tar.gz -z /opt/bin/flannel-0.5.1-linux-amd64.tar.gz https://github.com/coreos/flannel/releases/download/v0.5.1/flannel-0.5.1-linux-amd64.tar.gz ExecStartPre=/usr/bin/tar -C /opt/bin -xzvf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz ExecStartPre=/usr/bin/mv /opt/bin/flannel-0.5.1/flanneld /opt/bin/flanneld ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1 ExecStartPre=/usr/bin/rm -rf /opt/bin/flannel-0.5.1-linux-amd64.tar.gz ExecStart=/opt/bin/flanneld 当它去curl的法兰绒,我得到cannot resolve host 'github.com'和curl退出与1的代码。是否有一些问题,我不能在系统d启动这个时候使用dns?

卷毛,山猫等不接受本地证书,但远程可以

当我连接到我的networking服务器通过HTTPS查看网站时,我在地址栏中获得了漂亮的绿色电动车事件。 当我使用curl本地连接时,它会抱怨证书并死亡。 我知道我可以跳过证书检查,但我想解决这个问题,因为有些时候这些证书将在本地检查。 我的主机文件(在服务器上)将www.domain.com映射到192.168.100.62。 哪个Apache正在监听(通过对cURL执行相同的地址来确认): root@web3:~# curl -v https://www.domain.com * About to connect() to www.domain.com port 443 (#0) * Trying 192.168.100.62… connected * Connected to www.domain.com (192.168.100.62) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * Peer's certificate issuer is not recognized: 'CN=Symantec Class 3 EV SSL CA – […]

Geotrust SSLauthentication问题

我有一个curl问题(Centos 6 env)不承认Geotrust中介证书: * Trying 192.168.6.6… connected * Connected to composer.graymatter.co.uk (192.168.6.6) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * Peer's certificate issuer is not recognized: 'CN=GeoTrust DV SSL CA – G4,OU=Domain Validated SSL,O=GeoTrust Inc.,C=US' * NSS error -8179 * Closing connection #0 奇怪的是它最近才刚刚开始发生。 (大概一个月前)。 我已经更新了ca包文件: curl https://curl.haxx.se/ca/cacert.pem […]

为什么我的两个活服务器不运行这个curl命令,但我的本地testing服务器呢?

我有三台服务器。 两个是现场服务器托pipe网站的互联网。 一个是本地testing服务器,在互联网上看不到更大的。 我试图运行一个PHP脚本发布到Twitter ,它依靠curl。 当我在我的本地testing机器上运行脚本时,它完美的工作。 当我尝试运行在我的任何一台服务器上时,都会失败,并显示以下错误信息: PHP Fatal error: Call to undefined function Abraham\TwitterOAuth\curl_init() 在我的本地机器上,当我运行php –info | grep -i curl php –info | grep -i curl ,我得到这个回应: /etc/php5/cli/conf.d/20-curl.ini, curl cURL support => enabled cURL Information => 7.35.0 我只能通过SSH访问我的一台服务器(另一台是付费托pipe服务,受限制更多),当我在服务器上运行相同的命令时,我没有得到任何回应。 命令提示符没有任何回应。 但是,如果我转到我的实时服务器上的/etc/php5/cli/conf.d/目录,那里有一个20-curl.ini文件。 所有服务器都是基于Ubuntu的,我已经运行了apt-get install php5-curl curl ,他们都说它们运行的​​是最新版本。 这是所有服务器上最后一个令人困惑的细节,如果我在我的任何一台服务器,本地testing服务器和两台服务器上运行这个PHP脚本,我会得到一个积极的回应。 这是代码: echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : […]

如何“重写”ReverseProxied网站上的服务器响应标题?

我在本地networking上运行不同服务器上的几个网站。 所有的网站都是通过一个服务器进行代理的,在这个服务器上添加HTTPS,并监控stream量。 目前,如果有人提出: curl -I subdomain.domain.tld 结果是: curl -I https://subdomain.domain.tld HTTP/1.1 200 OK Date: Fri, 13 Jan 2017 09:19:02 GMT Server: Jetty(8.yz-SNAPSHOT) Content-Type: text/html Content-Length: 2379 Last-Modified: Tue, 10 Jan 2017 11:15:29 GMT 我怎样才能“覆盖”代理服务器与另一个来自ReverseProxy的响应的响应? 例如,我希望我的输出看起来像这样(如果可能的话) curl -I https://dubdomain.domain.tld HTTP/1.1 200 OK Date: Fri, 13 Jan 2017 09:19:02 GMT Server: Apache24 (or even something else) Content-Type: […]

如何将多行转换为一行

我有这些curl命令 1。 curl -XPUT "http://192.168.1.1:8080/locate" -d' { "crap": { "crazy": 1 }, "asap": { "peg": { "properties": { "url": { "type": "string", "index": "no" } } } } }' 2。 curl -XPOST "http://192.168.1.1:8080/locate" -d' { "url": "https://cdn.happyworld.com/lmfao" }' 我如何在one line curl命令中编写它们中的每一个,以便我可以轻松地将每一行放在bash脚本的一行中? 如果一行是不可能的,那么我怎样才能把它们格式化,让bash能够理解为一个命令呢? 谢谢!!!

寻找一个可以testing端口是否打开的web API

当然,有许多方法可以检查服务器上的端口是否打开(nmap,netcat,yougetsignal.com),但是,我很好奇,如果有人知道一个网站的API可以从一个工具,如curl。 理想情况下,沿着curl -s https://isitopen.somesite.com/myserver.com/80曲线curl -s https://isitopen.somesite.com/myserver.com/80或类似的东西。

如何在bashvariables中添加单引号?

我试图调用一个API,并希望设置一个curl默认值为一个variables,所以当我做多个调用时,它使用相同的一组“默认值”。 出于某种原因,curl不能识别-H 'Content-type: application/json' ,我为什么不能理解。 opts=" -v -H 'Content-type: application/json' " curl $opts -d '{"hi":1}' https://google.com 上面打印出来 $ opts=" -v -H 'Content-type: application/json' " $ curl $opts -d '{"hi":1}' https://google.com * Could not resolve host: application <——– !! * Closing connection 0 curl: (6) Could not resolve host: application * Rebuilt URL to: https://google.com/ * […]

jq不能索引错误

我正在尝试使用jq从此端点获取某些信息 curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '[.]' 和下面的输出 [ { "success": true, "message": "", "result": [ { "MarketName": "BTC-1ST", "High": 0.00010322, "Low": 9.32e-05, "Volume": 1475820.53114847, "Last": 9.414e-05, "BaseVolume": 145.89904728, "TimeStamp": "2017-10-05T00:32:45.283", "Bid": 9.415e-05, "Ask": 9.521e-05, "OpenBuyOrders": 614, "OpenSellOrders": 5887, "PrevDay": 0.00010169, "Created": "2017-06-06T01:22:35.727" }, { "MarketName": "BTC-2GIVE", "High": 1.31e-06, "Low": 1.24e-06, "Volume": 4356547.69360079, "Last": 1.29e-06, […]