无法将连接主机名 (api.shinyapps.io) 与服务器证书名称匹配

failed to match connection hostname (api.shinyapps.io) against server certificate names

部署闪亮的应用程序时,rstudio ide 显示错误:

错误 curl::curl_fetch_memory(url, handle = handle) : schannel:CertGetNameString() 无法将连接主机名 (api.shinyapps.io) 与服务器证书名称相匹配 调用:... tryCatch -> tryCatchList -> tryCatchOne -> 计时停止于:0.02 0.02 0.8 执行暂停

这适用于 windows 7(64 位)。

详情:

----- Deployment log started at  2019-08-03 01:42:06  -----
Deploy command: 
 rsconnect::deployApp(appDir = "D:/shinyTest/_app002",      appFileManifest = "C:/Users/ADMINI~1/AppData/Local/Temp/2013-805c-ca6a-04c2",      account = "r00", server = "shinyapps.io", appName = "_app002",      appTitle = "_app002", launch.browser = function(url) {         message("Deployment completed: ", url)     }, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE),      logLevel = "verbose") 

Session information: 
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=Chinese (Simplified)_People's Republic of China.936 
[2] LC_CTYPE=Chinese (Simplified)_People's Republic of China.936   
[3] LC_MONETARY=Chinese (Simplified)_People's Republic of China.936
[4] LC_NUMERIC=C                                                   
[5] LC_TIME=Chinese (Simplified)_People's Republic of China.936    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.6.1   rsconnect_0.8.15
Cookies: 
[1] "None"
----- Deployment error -----
Error in curl::curl_fetch_memory(url, handle = handle) : 
  schannel: CertGetNameString() failed to match connection hostname (api.shinyapps.io) against server certificate names
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>

----- Error stack trace -----
20: stop(e)
19: value[[3L]](cond)
18: tryCatchOne(expr, names, parentenv, handlers[[1L]])
17: tryCatchList(expr, classes, parentenv, handlers)
16: tryCatch({
        response <- curl::curl_fetch_memory(url, handle = handle)
    }, error = function(e, ...) {
        if (identical(e$message, "Callback aborted") || identical(e$message, 
            "transfer closed with outstanding read data remaining")) 
            return(NULL)
        else stop(e)
    })
15: system.time(gcFirst = FALSE, tryCatch({
        response <- curl::curl_fetch_memory(url, handle = handle)
    }, error = function(e, ...) {
        if (identical(e$message, "Callback aborted") || identical(e$message, 
            "transfer closed with outstanding read data remaining")) 
            return(NULL)
        else stop(e)
    }))
14: http(service$protocol, service$host, service$port, method, url, 
        headers, timeout = timeout, certificate = certificate)
13: httpInvokeRequest(..., http = httpFunction())
12: httpRequest(service, authInfo, "GET", path, query, headers, timeout)
11: GET(service, authInfo, path, queryWithList)
10: grepl(contentType, response$contentType, fixed = TRUE)
9: isContentType(response, "application/json")
8: handleResponse(GET(service, authInfo, path, queryWithList))
7: listRequest(service, authInfo, path, query, "applications")
6: client$listApplications(accountInfo$accountId, filters = list(name = name))
5: getAppByName(client, accountInfo, target$appName)
4: applicationForTarget(client, accountDetails, target, forceUpdate)
3: force(code)
2: withStatus(paste0("Preparing to deploy ", assetTypeName), {
       application <- applicationForTarget(client, accountDetails, 
           target, forceUpdate)
   })
1: rsconnect::deployApp(appDir = "D:/shinyTest/_app002", 
       appFileManifest = "C:/Users/ADMINI~1/AppData/Local/Temp/2013-805c-ca6a-04c2", 
       account = "r00", server = "shinyapps.io", appName = "_app002", 
       appTitle = "_app002", launch.browser = function(url) {
           message("Deployment completed: ", url)
       }, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE), 
       logLevel = "verbose")
Error in curl::curl_fetch_memory(url, handle = handle) : 
  schannel: CertGetNameString() failed to match connection hostname (api.shinyapps.io) against server certificate names
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Timing stopped at: 0.02 0.02 0.8
Execution halted

谁能帮帮我?谢谢!

我昨天刚遇到这个问题,在尝试部署应用程序时看到了同样的错误。如果你像我一样,你搜索并发现观察到类似的错误 if you have a proxy server in the way。话虽如此,我假设您不在代理服务器后面。如果你是,请遵循其他地方所说的一些内容。

我还假设您之前已经通过 rsconnect::setAccountInfo() 设置了您的帐户。如果没有,请按照 rsconnect documentation.

上的说明进行操作

如果所有设置都已设置,请注意错误文本指出问题实际上是 curl 包中的错误:

Error in curl::curl_fetch_memory(url, handle = handle) : schannel: CertGetNameString() failed to match connection hostname (api.shinyapps.io) against server certificate names

简单的答案是专门更新 curl 包:install.packages('curl')。这对我有用...有帮助吗?