Проблема с сертификатом SSL: не удается получить сертификат локального эмитента (в R/Shiny)

#r #ssl #shiny

Вопрос:

В проекте R/shiny мне приходится доставлять данные из конечной точки и часто использовать для этого RCurl. Но в этом случае консоль выводит ошибку о локальном сертификате.

 library(RCurl)
data = getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J")
 

Ошибка в функции (тип, msg, asError = TRUE) : Проблема с сертификатом SSL: не удается получить сертификат локального эмитента

Проблема с сертификатом SSL: не удается получить сертификат локального эмитента

Ответ №1:

Итак, я провел кое-какой тест. Например, при использовании компьютера Mac эта проблема не возникает, однако в shinyapps.io так и есть.
Проблема в том, что RCurl не получает сертификат с веб-сайта, тогда нам нужно добавить этот сертификат в качестве параметра.

Для того, чтобы получить сертификат, вам необходимо выполнить следующие действия:

Откройте браузер (я использовал firefox), затем перейдите по URL-адресу конечной точки (или API) и нажмите на значок замка.

Бросьте нажмите на значок замка

Затем выберите опцию «Дополнительная информация», и вы найдете кнопку «Просмотреть сертификат» в появившемся окне, а затем нажмите на нее!

Кнопка «Просмотреть сертификат» в окне определения веб-сайта

В новой вкладке, которая откроется в вашем браузере, есть раздел «Разное», где вы найдете ссылки для загрузки файлов pem. Скачай их!

Разное и ссылки на файлы pem

Наконец, добавьте эти файлы в «Рабочий каталог» вашего проекта R и добавьте один из них в качестве параметра в команду getURL (это один из двух).

 library(RCurl)
data =getURL("https://corporatewebsite.kl/ProyectosTD/getData/dfs32b98565sd65dfkjswfr8J", cainfo="file.pem")