HTTR R,CURL,无法加载PEM证书?

gwbalxhn  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(220)

我正在尝试发出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.pemmy_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)

任何帮助都将不胜感激。
谢谢你

wqsoz72f

wqsoz72f1#

根据@MrFlick提供的答案,我能够解决这个问题。
在get()请求之前将文件写入磁盘,如下所示:

write_pem(cert$cert, "my_cert.pem") 
write_pem(cert$key, "my_key.pem")

导致成功响应,我不再收到以下错误:

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?)

相关问题