docs: def generate_csr(private_key_bytes, subject_name, fqdn_list):
      """Generate a Certificate Signing Request (CSR).
  
      Args:
          private_key_bytes: bytes
              Private key with which the CSR will be signed.
  
          subject_name: str
              Certificate Subject Name
  
          fqdn_list:
              List of Fully Qualified Domain Names (FQDN) and/or IP addresses for which
              this certificate will provide authentication.
  
              E.g.: ['my.membernode.org', '1.2.3.4']
      """
      return (
          cryptography.x509.CertificateSigningRequestBuilder()
          .subject_name(subject_name)
          .add_extension(
              extension=cryptography.x509.SubjectAlternativeName(
                  [cryptography.x509.DNSName(v) for v in fqdn_list]
              ),
              critical=False,
          )
          .sign(
              private_key=private_key_bytes,
              algorithm=cryptography.hazmat.primitives.hashes.SHA256(),
              backend=cryptography.hazmat.backends.default_backend(),
          )
      )