|
20 | 20 | module OpenSSL
|
21 | 21 | module SSL
|
22 | 22 | class SSLContext
|
23 |
| - options = OpenSSL::SSL::OP_ALL |
24 |
| - if defined?(OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS) |
25 |
| - options &= ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS |
26 |
| - end |
27 |
| - if defined?(OpenSSL::SSL::OP_NO_COMPRESSION) |
28 |
| - options |= OpenSSL::SSL::OP_NO_COMPRESSION |
29 |
| - end |
30 |
| - |
31 | 23 | DEFAULT_PARAMS = {
|
32 | 24 | :ssl_version => "SSLv23",
|
33 | 25 | :verify_mode => OpenSSL::SSL::VERIFY_PEER,
|
34 |
| - :ciphers => "DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:!ADH", |
35 |
| - :options => options, |
| 26 | + :ciphers => %w{ |
| 27 | + ECDHE-ECDSA-AES128-GCM-SHA256 |
| 28 | + ECDHE-RSA-AES128-GCM-SHA256 |
| 29 | + ECDHE-ECDSA-AES256-GCM-SHA384 |
| 30 | + ECDHE-RSA-AES256-GCM-SHA384 |
| 31 | + DHE-RSA-AES128-GCM-SHA256 |
| 32 | + DHE-DSS-AES128-GCM-SHA256 |
| 33 | + DHE-RSA-AES256-GCM-SHA384 |
| 34 | + DHE-DSS-AES256-GCM-SHA384 |
| 35 | + ECDHE-ECDSA-AES128-SHA256 |
| 36 | + ECDHE-RSA-AES128-SHA256 |
| 37 | + ECDHE-ECDSA-AES128-SHA |
| 38 | + ECDHE-RSA-AES128-SHA |
| 39 | + ECDHE-ECDSA-AES256-SHA384 |
| 40 | + ECDHE-RSA-AES256-SHA384 |
| 41 | + ECDHE-ECDSA-AES256-SHA |
| 42 | + ECDHE-RSA-AES256-SHA |
| 43 | + DHE-RSA-AES128-SHA256 |
| 44 | + DHE-RSA-AES256-SHA256 |
| 45 | + DHE-RSA-AES128-SHA |
| 46 | + DHE-RSA-AES256-SHA |
| 47 | + DHE-DSS-AES128-SHA256 |
| 48 | + DHE-DSS-AES256-SHA256 |
| 49 | + DHE-DSS-AES128-SHA |
| 50 | + DHE-DSS-AES256-SHA |
| 51 | + AES128-GCM-SHA256 |
| 52 | + AES256-GCM-SHA384 |
| 53 | + AES128-SHA256 |
| 54 | + AES256-SHA256 |
| 55 | + AES128-SHA |
| 56 | + AES256-SHA |
| 57 | + ECDHE-ECDSA-RC4-SHA |
| 58 | + ECDHE-RSA-RC4-SHA |
| 59 | + RC4-SHA |
| 60 | + }.join(":"), |
| 61 | + :options => -> { |
| 62 | + opts = OpenSSL::SSL::OP_ALL |
| 63 | + opts &= ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS if defined?(OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS) |
| 64 | + opts |= OpenSSL::SSL::OP_NO_COMPRESSION if defined?(OpenSSL::SSL::OP_NO_COMPRESSION) |
| 65 | + opts |= OpenSSL::SSL::OP_NO_SSLv2 if defined?(OpenSSL::SSL::OP_NO_SSLv2) |
| 66 | + opts |= OpenSSL::SSL::OP_NO_SSLv3 if defined?(OpenSSL::SSL::OP_NO_SSLv3) |
| 67 | + }.call |
36 | 68 | }
|
37 | 69 |
|
38 | 70 | DEFAULT_CERT_STORE = OpenSSL::X509::Store.new
|
|
0 commit comments