code: def make_certificate_signing_request(pkey, digest='sha512', **name):
    
    csr = crypto.X509Req()
    subj = csr.get_subject()
    subj.C = name.get('C', 'US')
    subj.ST = name.get('ST', 'CA')
    subj.L = name.get('L', 'Home')
    subj.O = name.get('O', 'Home')
    subj.OU = name.get('OU', 'Unit')
    subj.CN = name.get('CN', 'Common')
    csr.set_pubkey(pkey)
    csr.set_version(3)
    csr.sign(pkey, digest)
    return csr
docs: Make a certificate signing request.
  
    :param OpenSSL.crypto.PKey pkey: A private key.
    :param str digest: A valid digest to use. For example, `sha512`.
    :param name: Key word arguments containing subject name parts: C, ST, L, O,
      OU, CN.
    :return: A certificate signing request.
    :rtype: :class:`OpenSSL.crypto.X509Request`