'Request issuance.
:param csr: CSR
:type csr: `OpenSSL.crypto.X509Req` wrapped in `.ComparableX509`
:param authzrs: `list` of `.AuthorizationResource`
:returns: Issued certificate
:rtype: `.messages.CertificateResource`'

def request_issuance(self, csr, authzrs):

    assert authzrs, 'Authorizations    list    is    empty'
    logger.debug('Requesting    issuance...')
    req = messages.CertificateRequest(csr=csr)
    content_type = DER_CONTENT_TYPE
    response = self.net.post(self.directory.new_cert, req, content_type=content_type, headers={'Accept': content_type})
    cert_chain_uri = response.links.get('up', {}).get('url')
    try:
        uri = response.headers['Location']
    except KeyError:
        raise errors.ClientError('"Location"    Header    missing')
    return messages.CertificateResource(uri=uri, authzrs=authzrs, cert_chain_uri=cert_chain_uri, body=jose.ComparableX509(OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, response.content)))
