code: public SslContextBuilder keyManager(InputStream keyCertChainInputStream, InputStream keyInputStream,
              String keyPassword) {
          X509Certificate[] keyCertChain;
          PrivateKey key;
          try {
              keyCertChain = SslContext.toX509Certificates(keyCertChainInputStream);
          } catch (Exception e) {
              throw new IllegalArgumentException("Input stream not contain valid certificates.", e);
          }
          try {
              key = SslContext.toPrivateKey(keyInputStream, keyPassword);
          } catch (Exception e) {
              throw new IllegalArgumentException("Input stream does not contain valid private key.", e);
          }
          return keyManager(key, keyPassword, keyCertChain);
      }
docs: Identifying certificate for this host. {@code keyCertChainInputStream} and {@code keyInputStream} may
  be {@code null} for client contexts, which disables mutual authentication.
  
  @param keyCertChainInputStream an input stream for an X.509 certificate chain in PEM format
  @param keyInputStream an input stream for a PKCS#8 private key in PEM format
  @param keyPassword the password of the {@code keyInputStream}, or {@code null} if it's not
  password-protected