chef / chef/chef

Develop a resource that converts an existing client.pem setup to one capable of MTLS

Open
#11,996 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Aspect: Security Focus: MTLS Triage: Feature Request
Dominant language
Ruby
Stars
8.2k
Forks
2.5k
Avg merge
4d 5h
Merged PRs (30d)
23

Description

As a Chef administrator
I would like a way to programmatically setup nodes to use MTLS
so that I can migrate existing systems to MTLS using Chef

Currently, we have the ability to enable cert validation on the Infra Server and we have the ability to use the cert chain on the client, but we don't have a way to get existing clients setup for MTLS communication. We need to provide users with the tools in chef recipes to setup the x509 cert/pem files given their existing client.pem and a CA cert.

Potential Look / Feel

This should be considered a high level idea. Change what you need.

chef_client_mtls_cert_migration 'setup node mtls certs' do
  ca_cert 'ABC123_I_AM_CERT_STRING'
end

Requirements

  • Resource is marked sensitive to prevent logs from containing the cert contents
  • takes ca cert either as string or as path on disk
  • has a property for specifying the client.pem location which defaults to the right location based on OS as determined by chef-config
  • Outputs cert and key to the default location

Contributor guide

Open the contributing guide

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.

Research direction

Start by reviewing Chef recipes and chef-config's OS-specific defaults for the existing client.pem location, then determine how the proposed resource should accept a CA certificate as a string or disk path. Done means a sensitive resource can migrate existing clients, write the certificate and key to their default locations, and support a configurable client.pem path.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
devops, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.