<div dir="ltr"><br>This proposal provides a mechanism to replace the self signed certificate with  CA signed certificate based on BMC generated CSR.<br><br>What is CSR: Certificate Signing Request is a digital request  sent to certificate authority(CA) to apply for a digital identity certificates, which includes the  information about the organization info and a unique identifying key( public key).<br><br>OpenSSL tools can be used to generate CSR and corresponding private key. <br><br>How to update a signed certificate on the BMC ?<br><br>The workflow for updating a signed certificate on the BMC consists of:<br>1. Generating a CSR on the BMC<br>2. Exporting the CSR from the BMC onto the user’s storage device<br>3. Obtaining a singed certificate corresponding to the CSR from a CA<br>4. Importing the signed certificate on the BMC<br><br>The user shall have the ability to export the generated CSR any number of times until the signed certificate is imported.<br><br>In order to support the above workflow, the BMC shall provide the following REST APIs:<br><ul><li>Generate CSR</li><li>Renew CSR</li><li>Download CSR</li><li>Upload digitally signed certificate.</li><li>Activate digitally signed certificates</li><li>Download digitally signed certificate</li></ul><p>Additional Requirements:<br></p><ul><li>BMC should store the Signed certificate and private key in a persistent secured storage location..</li><li>Activate process shall validate the new certificate against the private key and information in the CSR.</li><li>Successful certificate activation shall replace the existing certificate and private key.</li><li>A new CSR generate request will overwrite the previous CSR. User should take caution to not repeat CSR requests to prevent overwriting pending CSRs. </li><li>Certificate management operation should be restricted for certain privilege levels.</li><li>As part of Boot process,  a new self-signed certificate is generated if:<br></li></ul><div style="margin-left:40px"><ul><li>No CA signed certificate is present or corrupted.</li><li>A self-signed certificate is not present or corrupted.</li><li>The certificate has expired.</li></ul></div><ul><li>Validity of the certificate must be ensured by the user or client application by periodically checking the expiry date. Certificate management feature may be be enhanced in future to generate events when the certificate is about to expire.</li></ul><ul><li>Existing REST session will be tossed during certificate activate process.</li></ul><br>Note: REST/D-bus details not included here.<br></div>