我正在尝试发出API请求,并将我的SSL证书传递给配置()参数。我最初用了几个星期,但后来不得不重新安装R。我做了一个干净的安装,删除所有文件夹,安装R,RTools,RStudio。在这个新的R示例中,相同的脚本不再工作。我卸载/重新安装了HTTR,curl,openssl和没有运气仍然(我也重新安装了R多次)。
这是我得到的错误:
Error in curl::curl_fetch_memory(url, handle = handle) :
could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?)
下面是get请求代码:
conn <- GET(url = "testurl",
add_headers(header2),
config(sslcert = "my_cert.pem", sslkey = "my_key.pem"),
content_type_json(),
accept_json())
其中,my_cert.pem
和my_key.pem
是通过openssl解析的:
cert <- openssl::read_p12(file = "Data/certificate.pfx", password = "somepassword")
my_cert.pem <- write_pem(cert$cert)
my_key.pem <- write_pem(cert$key)
任何帮助都将不胜感激。
谢谢你
1条答案
按热度按时间wqsoz72f1#
根据@MrFlick提供的答案,我能够解决这个问题。
在get()请求之前将文件写入磁盘,如下所示:
导致成功响应,我不再收到以下错误: