Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Right way to create an intermediate certificate authority which is created through CLI without db connection

Open
#1,339 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Documentation
Clarity
Needs clarification
Activity status
Stale
Tech stack
go, postgresql

Research direction

Start by tracing the CLI commands cfssl gencert -initca, cfssl serve, and the /api/v1/cfssl/newcert endpoint, then inspect how the PostgreSQL database records certificates and supports revocation. Determine whether intermediate CAs created outside the API are supported for revocation, and document the confirmed setup or the missing behavior.

Written by the indexing model from the issue text.

Description

Hi CFSSL Team,
First of all CFSSL is a lovely piece of software. Thank you so much for building and open sourcing it.

To start an API server and let it handle signing using intermediate certificate we first need

  1. Create a self signed root ca using CLI cfssl gencert -initca
  2. Create an intermediate ca using cli which is signed by root ca
  3. Start api server with cfssl serve -ca and -ca-key option of the intermediate certificate along with a db config option.(I am using postgresql for my setup.)

Post which all certificates created using the api will store the cert details without private key in the postgresdb. This will enable us to call revoke on those certificates.

Since Root and IntermediateCA themselves were created using cli they were not added to the DB. What is the right way to setup so that intermediateCAs can be revoked as well in case of a breach since intermediate pem and keys are on the server and not air gapped like root ca?

One approach is

  1. create root ca
  2. start api server with root ca
  3. call /api/v1/cfssl/newcert api with profile of intermediate CA
  4. stop api server and then start apiserver with intermediate ca as -ca and -ca-key options.

Is this the correct way to do it?

Dominant language
Go
Stars
9.5k
Forks
1.2k
Avg merge
12h 48m
Merged PRs (30d)
2

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cloudflare/cfssl

All issues in cloudflare/cfssl

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.