2017-03-04 4 views
1

ich an R package und getting reports von entwickle beschäftigen:Entwicklungspaket R und müssen mit „SSL verwenden error“

httr::GET('http://gdc-api.nci.nih.gov/status') 
Error in curl::curl_fetch_memory(url, handle = handle) : SSL connect error 

ich den Umgang mit dem Problem, eine Reihe verschiedener Ansätze gesehen, aber ich bin nicht in der Lage zu Testen Sie sie lokal, da ich das Problem nicht reproduzieren kann. Gibt es einen empfohlenen Ansatz zur Behandlung dieses Problems in R, bei dem der Benutzer keine neuen Systembibliotheken (eine Dose Würmer) installieren muss?

Antwort

1

Das Problem liegt höchstwahrscheinlich an der veralteten TLS-Unterstützung auf den Clients, da die Deaktivierung des Peerzertifikats und die Validierung des Hostnamens nicht helfen.

Eine schnelle scan des Servers zeigt, dass sie nur TLS 1.2-Verbindungen unterstützen, so dass Clients dies unterstützen müssen (SSLv3, TLS 1.0 oder TLS 1.1 wird nicht funktionieren). Dies bedeutet, dass OpenSSL 1.0.1 oder höher erforderlich ist.

Leider gibt es nichts, was Sie in Ihrem Code tun können, um dies zu umgehen. Sie müssen sicherstellen, dass ihre cURL-Bibliotheken mit moderner TLS-Unterstützung erstellt werden.

sslscan https://gdc-api.nci.nih.gov 
Version: 1.10.5-rbsec 
OpenSSL 1.0.2k 26 Jan 2017 

Testing SSL server gdc-api.nci.nih.gov on port 443 

    TLS renegotiation: 
Session renegotiation not supported 

    TLS Compression: 
Compression disabled 

    Heartbleed: 
TLS 1.0 not vulnerable to heartbleed 
TLS 1.1 not vulnerable to heartbleed 
TLS 1.2 not vulnerable to heartbleed 

    Supported Server Cipher(s): 
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384 
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA384  
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256  

    Preferred Server Cipher(s): 
TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384 
+0

Auf einigen Systemen scheint mindestens libcurl möglicherweise ein Update zu benötigen. – seandavi

+1

Ja, tut mir leid, wenn das nicht klar war. libcurl muss ebenfalls aktualisiert werden, um über spätere TLS-Protokolle und deren Verwendung mit den aktualisierten SSL-Bibliotheken informiert zu sein. – drew010