用于代码签名的免费 CA
Fulcio 是一个免费的证书颁发机构,用于为 OpenID Connect (OIDC) 身份(例如电子邮件地址)签发代码签名证书。
Fulcio 仅签发有效期为 10 分钟的短期证书。
Fulcio 已正式发布(General Availability),提供 99.5% 可用性 SLO,并遵循 semver 规则 以保证 API 稳定性。
有关 Fulcio 公共实例的运行时间数据,请参阅 https://status.sigstore.dev。
Fulcio 的证书链可通过 TrustBundle API 获取,例如公共实例
(https://fulcio.sigstore.dev)。要验证公共实例,
您必须使用来自 sigstore/root-signing 仓库的
Sigstore TUF 根来验证证书链。
为此,请安装并使用 go-tuf 的 CLI 工具:
$ go install github.com/theupdateframework/go-tuf/cmd/tuf-client@latest
然后,获取 Sigstore 的可信根密钥。由于向后不兼容的变更,您将使用 Sigstore TUF 根的第 5 次迭代作为信任根起点。
curl -o sigstore-root.json https://raw.githubusercontent.com/sigstore/root-signing/main/metadata/root_history/5.root.json
使用先前获取的根和远程仓库 https://tuf-repo-cdn.sigstore.dev 初始化 TUF 客户端,
并获取当前的 Fulcio 根证书 fulcio_v1.crt.pem 和中间证书 fulcio_intermediate_v1.crt.pem。
$ tuf-client init https://tuf-repo-cdn.sigstore.dev sigstore-root.json
$ tuf-client get https://tuf-repo-cdn.sigstore.dev fulcio_v1.crt.pem
-----BEGIN CERTIFICATE-----
MIIB9zCCAXygAwIBAgIUALZNAPFdxHPwjeDloDwyYChAO/4wCgYIKoZIzj0EAwMw
KjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MREwDwYDVQQDEwhzaWdzdG9yZTAeFw0y
MTEwMDcxMzU2NTlaFw0zMTEwMDUxMzU2NThaMCoxFTATBgNVBAoTDHNpZ3N0b3Jl
LmRldjERMA8GA1UEAxMIc2lnc3RvcmUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAT7
XeFT4rb3PQGwS4IajtLk3/OlnpgangaBclYpsYBr5i+4ynB07ceb3LP0OIOZdxex
X69c5iVuyJRQ+Hz05yi+UF3uBWAlHpiS5sh0+H2GHE7SXrk1EC5m1Tr19L9gg92j
YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRY
wB5fkUWlZql6zJChkyLQKsXF+jAfBgNVHSMEGDAWgBRYwB5fkUWlZql6zJChkyLQ
KsXF+jAKBggqhkjOPQQDAwNpADBmAjEAj1nHeXZp+13NWBNa+EDsDP8G1WWg1tCM
WP/WHPqpaVo0jhsweNFZgSs0eE7wYI4qAjEA2WB9ot98sIkoF3vZYdd3/VtWB5b9
TNMea7Ix/stJ5TfcLLeABLE4BNJOsQ4vnBHJ
-----END CERTIFICATE-----
$ tuf-client get https://tuf-repo-cdn.sigstore.dev fulcio_intermediate_v1.crt.pem
-----BEGIN CERTIFICATE-----
MIICGjCCAaGgAwIBAgIUALnViVfnU0brJasmRkHrn/UnfaQwCgYIKoZIzj0EAwMw
KjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MREwDwYDVQQDEwhzaWdzdG9yZTAeFw0y
MjA0MTMyMDA2MTVaFw0zMTEwMDUxMzU2NThaMDcxFTATBgNVBAoTDHNpZ3N0b3Jl
LmRldjEeMBwGA1UEAxMVc2lnc3RvcmUtaW50ZXJtZWRpYXRlMHYwEAYHKoZIzj0C
AQYFK4EEACIDYgAE8RVS/ysH+NOvuDZyPIZtilgUF9NlarYpAd9HP1vBBH1U5CV7
7LSS7s0ZiH4nE7Hv7ptS6LvvR/STk798LVgMzLlJ4HeIfF3tHSaexLcYpSASr1kS
0N/RgBJz/9jWCiXno3sweTAOBgNVHQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYB
BQUHAwMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU39Ppz1YkEZb5qNjp
KFWixi4YZD8wHwYDVR0jBBgwFoAUWMAeX5FFpWapesyQoZMi0CrFxfowCgYIKoZI
zj0EAwMDZwAwZAIwPCsQK4DYiZYDPIaDi5HFKnfxXx6ASSVmERfsynYBiX2X6SJR
nZU84/9DZdnFvvxmAjBOt6QpBlc4J/0DxvkTCqpclvziL6BCCPnjdlIB3Pu3BxsP
mygUY7Ii2zbdCdliiow=
-----END CERTIFICATE-----
Certificate Maker 是一款用于创建 Fulcio 合规证书链 的工具。它支持:
有关详细的使用说明和示例,请参阅 Certificate Maker 文档。
您还可以使用工件签名密钥验证已签名的发布(fulcio-<os>.sig):
tuf-client get https://tuf-repo-cdn.sigstore.dev artifact.pub > artifact.pub
curl -o fulcio-release.sig -L https://github.com/sigstore/fulcio/releases/download/<version>/fulcio-<os>.sig
base64 -d fulcio-release.sig > fulcio-release.sig.decoded
curl -o fulcio-release -L https://github.com/sigstore/fulcio/releases/download/<version>/fulcio-<os>
openssl dgst -sha256 -verify artifact.pub -signature fulcio-release.sig.decoded fulcio-release
API 定义在此处。该 API 可以通过 HTTP 或 gRPC 访问。
Fulcio 会将已签发的证书发布到证书透明度日志(CT log)。
日志托管于 https://ctfe.sigstore.dev/test。每年,日志都会更新为新的日志 ID,
例如 https://ctfe.sigstore.dev/2022。
该日志提供了一个在 RFC 6962 中记录的 API。
我们鼓励审计员监控此日志,以检查完整性和特定身份。 例如,审计员可以监控何时为某些电子邮件地址签发证书, 这将有助于检测用户身份的错误配置或潜在泄露。
请按照 sigstore 的 安全流程 报告任何漏洞。
Fulcio 是 sigstore 项目的一部分。
我们还使用一个 slack 频道! 要了解有关 Slack 和其他沟通渠道的更多信息,请查看 社区仓库
除了本 README 文件外,docs 文件夹还包含以下附加文档:
如果您对这些主题中的任何一个进行更改,请确保同时编辑上面列出的相应文件。