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