public CertificateRequest RequestCertificate(string csrContent)
{
AssertInit();
AssertRegistration();
var requMsg = new NewCertRequest
{
Csr = csrContent
};
var resp = RequestHttpPost(new Uri(RootUrl,
Directory[AcmeServerDirectory.RES_NEW_CERT]), requMsg);
if (resp.IsError)
throw new AcmeWebException(resp.Error as WebException,
"Unexpected error", resp);
if (resp.StatusCode != HttpStatusCode.Created)
throw new AcmeProtocolException("Unexpected response status code", resp);
var uri = resp.Headers[AcmeProtocol.HEADER_LOCATION];
if (string.IsNullOrEmpty(uri))
throw new AcmeProtocolException("Response is missing a certificate resource URI", resp);
// This may be available immediately or it may need to be requeried for
var certRequ = new CertificateRequest
{
StatusCode = resp.StatusCode,
CsrContent = csrContent,
Uri = uri,
Links = resp.Links,
};
certRequ.SetCertificateContent(resp.RawContent);
return certRequ;
}