private static void maybeCaptureKeyCertChain(SslContextBuilder sslContextBuilder,
                                                 @Nullable List<X509Certificate> keyCertChainCaptor) {
        if (keyCertChainCaptor == null) {
            return;
        }
        try {
            // TODO(ikhoon): Open an issue to Netty to expose `keyCertChain` in `SslContextBuilder`.
            final Field keyCertChain = SslContextBuilder.class.getDeclaredField("keyCertChain");
            keyCertChain.setAccessible(true);
            final X509Certificate[] certificates = (X509Certificate[]) keyCertChain.get(sslContextBuilder);
            if (certificates == null || certificates.length == 0) {
                return;
            }
            keyCertChainCaptor.addAll(Arrays.asList(certificates));
        } catch (NoSuchFieldException | IllegalAccessException e) {
            logger.warn("Failed to access keyCertChain in {}", SslContextBuilder.class, e);
        }
    }
Creates a {@link SslContext} with Armeria's defaults, enabling support for HTTP/2,
TLSv1.3 (if supported), and TLSv1.2.
core/src/main/java/com/linecorp/armeria/internal/common/util/SslContextUtil.java