{"id":18368729,"url":"https://github.com/openbmc/phosphor-certificate-manager","last_synced_at":"2025-04-06T17:31:50.984Z","repository":{"id":49750405,"uuid":"144284564","full_name":"openbmc/phosphor-certificate-manager","owner":"openbmc","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-20T03:57:00.000Z","size":3206,"stargazers_count":6,"open_issues_count":4,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-22T04:02:09.950Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openbmc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-10T12:41:07.000Z","updated_at":"2025-02-20T17:44:40.000Z","dependencies_parsed_at":"2023-10-11T07:45:09.432Z","dependency_job_id":"2fa44e16-87c3-4396-b4a7-897b018a2898","html_url":"https://github.com/openbmc/phosphor-certificate-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbmc%2Fphosphor-certificate-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbmc%2Fphosphor-certificate-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbmc%2Fphosphor-certificate-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbmc%2Fphosphor-certificate-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openbmc","download_url":"https://codeload.github.com/openbmc/phosphor-certificate-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247522418,"owners_count":20952544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T23:27:10.512Z","updated_at":"2025-04-06T17:31:50.559Z","avatar_url":"https://github.com/openbmc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# phosphor-certificate-manager\n\nCertificate management allows to replace the existing certificate and private\nkey file with another (possibly CA signed) Certificate key file. Certificate\nmanagement allows the user to install both the server and client certificates.\n\n## To Build\n\nThis project can be built with `meson`. The typical `meson` workflow is:\n`meson builddir \u0026\u0026 ninja -C builddir`.\n\n## To Run\n\nMultiple instances of `phosphor-certificate-manager` are usually run on the bmc\nto support management of different types of certificates.\n\n```text\nUsage: ./phosphor-certificate-manager [options]\nOptions:\n    --help            Print this menu\n    --type            certificate type\n                      Valid types: client,server,authority\n    --endpoint        d-bus endpoint\n    --path            certificate file path\n    --unit=\u003cname\u003e     Optional systemd unit need to reload\n```\n\n### Https certificate management\n\n**Purpose:** Server https certificate\n\n```bash\n./phosphor-certificate-manager --type=server --endpoint=https \\\n    --path=/etc/ssl/certs/https/server.pem --unit=bmcweb.service\n```\n\n### CA certificate management\n\n**Purpose:** Client certificate validation\n\n```bash\n./phosphor-certificate-manager --type=authority --endpoint=truststore \\\n    --path=/etc/ssl/certs/authority --unit=bmcweb.service\n```\n\n### LDAP client certificate management\n\n**Purpose:** LDAP client certificate validation\n\n```bash\n./phosphor-certificate-manager --type=client --endpoint=ldap \\\n    --path=/etc/nslcd/certs/cert.pem\n```\n\n## D-Bus Interface\n\n`phosphor-certificate-manager` is an implementation of the D-Bus interface\ndefined in\n[this document](https://github.com/openbmc/phosphor-dbus-interfaces/blob/a3d0c212a1e734a77fbaf11c7561c59e59d514da/xyz/openbmc_project/Certs/README.md).\n\nD-Bus service name is constructed by\n\"xyz.openbmc_project.Certs.Manager.{Type}.{Endpoint}\" and D-Bus object path is\nconstructed by \"/xyz/openbmc_project/certs/{type}/{endpoint}\".\n\nTake https certificate management as an example.\n\n```bash\n./phosphor-certificate-manager --type=server --endpoint=https \\\n    --path=/etc/ssl/certs/https/server.pem --unit=bmcweb.service\n```\n\nD-Bus service name is \"xyz.openbmc_project.Certs.Manager.Server.Https\" and D-Bus\nobject path is \"/xyz/openbmc_project/certs/server/https\".\n\n## Usage in openbmc/bmcweb\n\nOpenBMC [bmcweb](https://github.com/openbmc/bmcweb) exposes various\n[REST APIs](https://github.com/openbmc/bmcweb/blob/master/redfish-core/lib/certificate_service.hpp)\nfor certificate management on the BMC, which leverages functionalities of\n`phosphor-certificate-manager` via D-Bus.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbmc%2Fphosphor-certificate-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenbmc%2Fphosphor-certificate-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbmc%2Fphosphor-certificate-manager/lists"}