<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>All,</div><div>Please find the Redflish based CSR ( Certificate Signing Request) generation and installing the certificate in BMC. <br></div><div>This is based on the latest Redfish spec (Reference: <a href="https://www.dmtf.org/sites/default/files/Redfish_2018_Release_3_Overview.pdf">https://www.dmtf.org/sites/default/files/Redfish_2018_Release_3_Overview.pdf</a>) and related documents. <br></div><div>Included the Gerrit link related to  d-bus interfaces : <br></div><div>    Review Link: <a href="https://gerrit.openbmc-project.xyz/#/c/openbmc/phosphor-dbus-interfaces/+/16571/">https://gerrit.openbmc-project.xyz/#/c/openbmc/phosphor-dbus-interfaces/+/16571/</a></div><div><br></div><div>Looking for the inputs  on this  design flow and any additional changes required from the security aspect on managing private keys in the BMC. <br></div><div><ul><li>The user performs the GenerateCSR action ( URIs: /redfish/v1/CertificateService ) with required parameters.</li><ul><li>Certificate service provides a d-bus interface to generate CSR .</li><ul><li>Certificate manager create Private key and saves the service specific path <br></li><li>Returns the d-bus path for the newly created CSR.</li></ul></ul></ul><ul><ul><li> Certificate service provides d-bus interface to download CSR</li><ul><li> The user need need wait for the creation of CSR specific d-bus path to download the newly created CSR</li></ul><li> The user takes the CSR file and get it signed by the appropriate authority.</li><ul><li> This step is outside the scope of Redfish.</li></ul></ul><li> The user navigates to the appropriate certificate collection</li><ul><li>  Example: if trying to replace the HTTPS certificate for a Manager, navigate to the Manager’s Certificate Collection that is subordinate to the   NetworkProtocol/HTTPS object</li></ul><li>The user performs a POST on the Certificate Collection with the certificate string in the body</li><ul><li> Use the existing certificate upload d-bus interface.</li></ul><li>Certificate manager validates the certificate with the available service specific private keys in the BMC.</li><li>After successful validation  pairs the private key used in the first step with the installed certificate.</li></ul>Assumption:<br></div><ul><li>For a service, BMC allows maximum 3 ( ?) CSR requests. Any new request after this will remove the oldest private key information from the BMC.</li><li>User has to do a Factory removing  the private key from the system.</li></ul></div></div></div>