Sì, abbiamo aggiunto TLS 1.1 & 1.2 supporto recently. E 'facile come impostazione ssl_version
sul SSLContext
:
ctx = OpenSSL::SSL::SSLContext.new
ctx.ssl_version = :TLSv1_2
Si può ancora continuare a utilizzare il più generico :SSLv23
per la massima interoperabilità. Avrà l'effetto che verrà utilizzato il nuovo protocollo supportato dal peer per la connessione. Se il tuo pari comprende TLS 1.2, verrà utilizzato. Ma contrariamente al campione precedente, se il peer non parla 1.2, l'implementazione tornerà silenziosamente alla versione migliore/più recente che il peer compie - mentre nell'esempio sopra, la connessione verrebbe rifiutata dal peer se non ha riconosciuto 1.2.
Per ulteriori dettagli, hanno anche uno sguardo al OpenSSL's own docs in materia, è possibile trasferire ciò che si dice su di TLSv1_method TLSv1_1_method e TLSv1_2_method (rappresentato in Ruby rispettivamente come :TLSv1
, :TLSv1_1
e :TLSv1_2
).
Se il tuo OpenSSL sottostante supporta TLS 1.2 (> = 1.0.1 fa), sei a posto. Tuttavia, ciò richiede al momento una build Ruby dal trunk. Ma se nel frattempo non otteniamo feedback negativi, potrebbe essere che verrà riavviato alla successiva versione 1.9.3.
Un prerequisito correlato è OpenSSL 1.0.0 e versioni successive. OpenSSL 0.9.8 non * non * fornisce i protocolli o le suite di crittografia. – jww