9

WindowsのRで次のコードを試しました:

library(RCurl)
postForm("https://www.google.com/accounts/ClientLogin/",
    "email" = "me@gmail.com",
    "Passwd" = "abcd",
    "service" = "finance",
    "source" = "Test-1"
)

しかし、次のエラーが発生します:

Error in postForm()
SL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

HTTPS の使用を許可するように RCurl を設定するにはどうすればよいですか?

4

2 に答える 2

13

クエリに .opts = list(ssl.verifypeer = FALSE) を追加するだけです

postForm("https://www.google.com/accounts/ClientLogin/",
    "email" = "me@gmail.com",
    "Passwd" = "abcd",
    "service" = "finance",
    "source" = "Test-1",
    .opts = list(ssl.verifypeer = FALSE))
于 2013-05-24T14:45:47.477 に答える
12

SSL ライブラリをインストールする必要があります。

  1. Windows の場合は、こちらから入手できます: Download "OpenSSL for Windows" version 0.9.8k

  2. 一時フォルダーに解凍し、ファイル「libeay32.dll」および「ssleay32.dll」を「bin」サブフォルダーから R\library\RCurl\lib\i386 にコピーします。

  3. また、R.exe と同じディレクトリにコピーすることもできます。

  4. 次に、https プロトコルにアクセスできるかどうかを確認します。

    library(RCurl)
    curlVersion()$protocol 
    ## [1] "tftp"   "ftp"    "telnet" "dict"   "ldap"   "http"   "file"   "https"     
    ## [9] "ftps"   "scp"    "sftp"  
    
  5. 次に、資格情報ファイルの新しいセットをインストールします。

    ca-bundle.crt はhttp://curl.haxx.se/ca/cacert.pemにあります。

    名前を変更 / ca-bundle.crt にコピー

  6. これでテストします:

    getURL("https://www.google.com/accounts/ClientLogin/?service=finance&email=me@gmail.com&Passwd=abcd&source=Test-1", 
           cainfo = "path to R/library/RCurl/CurlSSL/ca-bundle.crt")
    
于 2011-11-25T11:47:11.947 に答える