#r #ssl #shiny
Вопрос:
В проекте R/shiny мне приходится доставлять данные из конечной точки и часто использовать для этого RCurl. Но в этом случае консоль выводит ошибку о локальном сертификате.
library(RCurl)
data = getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J")
Ошибка в функции (тип, msg, asError = TRUE) : Проблема с сертификатом SSL: не удается получить сертификат локального эмитента
Ответ №1:
Итак, я провел кое-какой тест. Например, при использовании компьютера Mac эта проблема не возникает, однако в shinyapps.io так и есть.
Проблема в том, что RCurl не получает сертификат с веб-сайта, тогда нам нужно добавить этот сертификат в качестве параметра.
Для того, чтобы получить сертификат, вам необходимо выполнить следующие действия:
Откройте браузер (я использовал firefox), затем перейдите по URL-адресу конечной точки (или API) и нажмите на значок замка.
Бросьте нажмите на значок замка
Затем выберите опцию «Дополнительная информация», и вы найдете кнопку «Просмотреть сертификат» в появившемся окне, а затем нажмите на нее!
Кнопка «Просмотреть сертификат» в окне определения веб-сайта
В новой вкладке, которая откроется в вашем браузере, есть раздел «Разное», где вы найдете ссылки для загрузки файлов pem. Скачай их!
Наконец, добавьте эти файлы в «Рабочий каталог» вашего проекта R и добавьте один из них в качестве параметра в команду getURL (это один из двух).
library(RCurl)
data =getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J", cainfo="file.pem")