2017-11-25 369 views
1

我正在尝试编写一个简单的单行程序,它将采用.crt并将其作为SSLShopper.com传递给CRT检查程序。我可以发布这些数据,但是我得到的所有信息都是标题和HTTP响应。他们网站上的表单看起来很简单,只是一个返回结果的AJAX调用。这是我到目前为止:curl POST和GET响应

curl -L -i -X POST -k "https://www.sslshopper.com/assets/snippets/sslshopper/ajax/ajax_decode.php" --data-binary @test.crt 

有没有办法同时POST和GET?

+0

HTTP是基于“状态”。您发出请求或发帖并获取回复。一心一意。这就是它的工作原理。 – Rob

回答

0

看来你需要用下面的参数发送的数据表单URL编码格式:

  • cert_text={CERT_CONTENT}
  • decode_type=certificate

您还需要X-Requested-With: XMLHttpRequest & Connection: keep-alive标题:

cert_content=$(cat test.crt) 
curl 'https://www.sslshopper.com/assets/snippets/sslshopper/ajax/ajax_decode.php' \ 
    -H 'X-Requested-With: XMLHttpRequest' \ 
    -H 'Connection: keep-alive' \ 
    --data-urlencode "cert_text=$cert_content" \ 
    --data-urlencode "decode_type=certificate" 

但对于这个任务,你并不需要调用一些端点检查证书,因为它在https://www.sslshopper.com/certificate-decoder.html自行指定,也可以直接使用​​:

openssl x509 -in test.crt -noout -subject -enddate -startdate -issuer -serial 
+0

谢谢,你的卷曲方法奏效。你说得对,我可以使用cli版本,但它比我想要的要多得多。我正在比较这两个版本,看看哪一个更容易sed提取我需要的信息。 –

+0

@MattMorrow如果你只想要你可以使用的主题:'openssl x509 -in test.crt -noout -subject' –

+0

@MattMorrow我已经用'openssl' cmd更新了请求与http请求相同的数据,只是选择你需要的领域 –