【问题标题】:RCurl (or httr) - specifying cert infoRCurl(或 httr) - 指定证书信息
【发布时间】:2014-11-05 09:37:42
【问题描述】:

我一直在使用 httr 和 RCurl 并且正在努力指定一些证书信息。

我有一个 Curl CLI 命令,可以很好地让我登录到使用自签名证书进行身份验证(以及 uname/pwd)的网站,它看起来像这样......

curl -k -q -v --cert "../certs/foobar.pem" https://signon.foobar.com/certlogin -d "username=foo&password=bar" -H "X-Application: Curltest"

这会让我登录到 foobar.com 并返回一个会话令牌。

如果我使用相应的 .crt 证书文件并使用 --key 选项添加密钥,则相同的命令可以工作。

我正在尝试对 RCurl 或 httr 做同样的事情,并不断收到表明证书错误的错误。请记住,我知道证书没问题(因为 CLI 命令有效)我认为这是因为我在 RCurl 中错误地指定了证书。

所以,快速提问...

你将如何在 RCurl 或 httr 中重现上面给出的 CURL 命令?

顺便说一句,这是在 Ubuntu 上 - 所以不应该与很多人在 Mac OS X 10.9 + 上遇到的问题有关

非常感谢

埃卢索索 (第一次海报 - 很好......!)

这是我的(可能非常不优雅且肯定不起作用)代码

RCurl:

Library(RCurl)
url <- "https://signon.foobar.com/certlogin"
uname <- "foo"
pswd <-"bar"
headers <- list("X-Application" = "Curltest")
opts=curlOptions(verbose=TRUE, 
                 httpheader=headers, 
                 cainfo="../certs/foobar.pem", 
                 ssl.verifypeer=FALSE)
postForm(url, 
         "username" = uname, "password"=pswd,
         .opts=opts,
         style='POST'
)

httr:

library(httr)
cafile="../certs/foobar.pem"
resp<-POST("https://signon.foobar.com/certlogin", 
           body = list(username="foo", password = "bar"),
           add_headers("X-Application" = "Curltest" ), 
           verbose(),
           encode = "form",
           config(cainfo = cafile, ssl.verifypeer=FALSE))
content(resp,"text")

尽管 CURL CLI 命令正常工作,但在使用证书的完整路径名后,我仍然得到相同的服务器响应。 在 HTTP 请求中,我注意到了这一点:

SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.

这对某人是否相关/有帮助?..

【问题讨论】:

  • 你在 R 中尝试了什么?
  • 已更新以包含我的 R 代码
  • 你绝对不应该有ssl.verifypeer=FALSE
  • 我也会尝试使用 cafile 的绝对路径。
  • 同意 re: ssl.verifypeer=FALSE 只是为了对应 CLI 命令中的 -k 实际工作...不会进行最终剪辑!

标签: r rcurl httr


【解决方案1】:

我有 this issue,通过安装 libcurl4-openssl-dev 并将 Rcurl 软件包更新到最新版本 (1.95) 解决了这个问题

$ sudo apt-get install libcurl4-openssl-dev
$ R
> install.packages("RCurl")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    相关资源
    最近更新 更多