8952ae
--- lib/IO/Socket/SSL.pm
8952ae
+++ lib/IO/Socket/SSL.pm
1a2827
@@ -172,11 +172,10 @@ my %DEFAULT_SSL_ARGS = (
8952ae
     SSL_npn_protocols => undef,    # meaning depends whether on server or client side
8952ae
     SSL_alpn_protocols => undef,   # list of protocols we'll accept/send, for example ['http/1.1','spdy/3.1']
8952ae
 
1a2827
-    # https://wiki.mozilla.org/Security/Server_Side_TLS, 2019/03/05
8952ae
-    # "Old backward compatibility" for best compatibility
8952ae
-    # .. "Most ciphers that are not clearly broken and dangerous to use are supported"
1a2827
-    # slightly reordered to prefer AES since it is cheaper when hardware accelerated
1a2827
-    SSL_cipher_list => 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP',
8952ae
+    # Use system-wide default cipher list to support use of system-wide
8952ae
+    # crypto policy (#1076390, #1127577, CPAN RT#97816)
8952ae
+    # https://fedoraproject.org/wiki/Changes/CryptoPolicy
8952ae
+    SSL_cipher_list => 'DEFAULT',
8952ae
 );
8952ae
 
8952ae
 my %DEFAULT_SSL_CLIENT_ARGS = (
1a2827
@@ -186,63 +185,6 @@ my %DEFAULT_SSL_CLIENT_ARGS = (
8952ae
     SSL_ca_file => undef,
8952ae
     SSL_ca_path => undef,
8952ae
 
8952ae
-    # older versions of F5 BIG-IP hang when getting SSL client hello >255 bytes
8952ae
-    # http://support.f5.com/kb/en-us/solutions/public/13000/000/sol13037.html
8952ae
-    # http://guest:guest@rt.openssl.org/Ticket/Display.html?id=2771
8952ae
-    # Ubuntu worked around this by disabling TLSv1_2 on the client side for
8952ae
-    # a while. Later a padding extension was added to OpenSSL to work around
8952ae
-    # broken F5 but then IronPort croaked because it did not understand this
8952ae
-    # extension so it was disabled again :(
8952ae
-    # Firefox, Chrome and IE11 use TLSv1_2 but use only a few ciphers, so
8952ae
-    # that packet stays small enough. We try the same here.
8952ae
-
8952ae
-    SSL_cipher_list => join(" ",
8952ae
-
8952ae
-	# SSLabs report for Chrome 48/OSX. 
8952ae
-	# This also includes the fewer ciphers Firefox uses.
8952ae
-	'ECDHE-ECDSA-AES128-GCM-SHA256',
8952ae
-	'ECDHE-RSA-AES128-GCM-SHA256',
8952ae
-	'DHE-RSA-AES128-GCM-SHA256',
8952ae
-	'ECDHE-ECDSA-CHACHA20-POLY1305',
8952ae
-	'ECDHE-RSA-CHACHA20-POLY1305',
8952ae
-	'ECDHE-ECDSA-AES256-SHA',
8952ae
-	'ECDHE-RSA-AES256-SHA',
8952ae
-	'DHE-RSA-AES256-SHA',
8952ae
-	'ECDHE-ECDSA-AES128-SHA',
8952ae
-	'ECDHE-RSA-AES128-SHA',
8952ae
-	'DHE-RSA-AES128-SHA',
8952ae
-	'AES128-GCM-SHA256',
8952ae
-	'AES256-SHA',
8952ae
-	'AES128-SHA',
8952ae
-	'DES-CBC3-SHA',
8952ae
-
8952ae
-	# IE11/Edge has some more ciphers, notably SHA384 and DSS
8952ae
-	# we don't offer the *-AES128-SHA256 and *-AES256-SHA384 non-GCM
8952ae
-	# ciphers IE/Edge offers because they look like a large mismatch
8952ae
-	# between a very strong HMAC and a comparably weak (but sufficient)
8952ae
-	# encryption. Similar all browsers which do SHA384 can do ECDHE
8952ae
-	# so skip the DHE*SHA384 ciphers.
8952ae
-	'ECDHE-RSA-AES256-GCM-SHA384',
8952ae
-	'ECDHE-ECDSA-AES256-GCM-SHA384',
8952ae
-	# 'ECDHE-RSA-AES256-SHA384',
8952ae
-	# 'ECDHE-ECDSA-AES256-SHA384',
8952ae
-	# 'ECDHE-RSA-AES128-SHA256',
8952ae
-	# 'ECDHE-ECDSA-AES128-SHA256',
8952ae
-	# 'DHE-RSA-AES256-GCM-SHA384',
8952ae
-	# 'AES256-GCM-SHA384',
8952ae
-	'AES256-SHA256',
8952ae
-	# 'AES128-SHA256',
8952ae
-	'DHE-DSS-AES256-SHA256',
8952ae
-	# 'DHE-DSS-AES128-SHA256',
8952ae
-	'DHE-DSS-AES256-SHA',
8952ae
-	'DHE-DSS-AES128-SHA',
8952ae
-	'EDH-DSS-DES-CBC3-SHA',
8952ae
-
8952ae
-	# Just to make sure, that we don't accidentally add bad ciphers above.
8952ae
-	# This includes dropping RC4 which is no longer supported by modern
8952ae
-	# browsers and also excluded in the SSL libraries of Python and Ruby.
8952ae
-	"!EXP !MEDIUM !LOW !eNULL !aNULL !RC4 !DES !MD5 !PSK !SRP"
8952ae
-    )
8952ae
 );
8952ae
 
8952ae
 # set values inside _init to work with perlcc, RT#95452
8952ae
--- lib/IO/Socket/SSL.pod
8952ae
+++ lib/IO/Socket/SSL.pod
1a2827
@@ -1054,12 +1054,8 @@ documentation (L
8952ae
 for more details.
8952ae
 
8952ae
 Unless you fail to contact your peer because of no shared ciphers it is
8952ae
-recommended to leave this option at the default setting. The default setting
8952ae
-prefers ciphers with forward secrecy, disables anonymous authentication and
8952ae
-disables known insecure ciphers like MD5, DES etc. This gives a grade A result
8952ae
-at the tests of SSL Labs.
8952ae
-To use the less secure OpenSSL builtin default (whatever this is) set
8952ae
-SSL_cipher_list to ''.
8952ae
+recommended to leave this option at the default setting, which honors the
8952ae
+system-wide DEFAULT cipher list.
8952ae
 
8952ae
 In case different cipher lists are needed for different SNI hosts a hash can be
8952ae
 given with the host as key and the cipher suite as value, similar to