temporalio / temporalio/features

Emit warning log if a supplied client certificate has already expired

Open
#111 2 comments 0 reactions 1 assignee View on GitHub

@cretz is already working on this.

Since Aug 9, 2022.

enhancement
Dominant language
Go
Stars
32
Forks
28
Avg merge
1d 9h
Merged PRs (30d)
7

Description

The Problem:
There have been many instances where customer workers suddenly stop connecting. The error message returned is typically something that is not very actionable (e.g. last connection error: connection closed before server preface received). After much panic/head-wrangling, the customer eventually discovers that the client cert they are using to connect to the server has expired. They replace the client certificate with a new one, and their connectivity problems disappear.

The Solution:
Given the number of times we have seen this happen among multiple users, the goal is to reduce the user's time to detect why their workers cannot connect. Most users do look at their Worker logs in order to initially ascertain the source of their connection troubles. The proposal is to add a warning-level log during connection attempts if the certificate is indeed expired. If this is too difficult, then at least adding a warning log as part of setting up the TLS Configuration, as that would still have caught a few other cases.

While we could go full-ham and try and validate many other aspects of a certificate (e.g. Signature algorithm, key usage fields, etc), this is a bad idea because:

  1. There are so many different variations we have to verify.
  2. The server is going to anyways validate these upon connection time.

The goal is to provide a targeted log for a common, specific issue that users of the SDK run into. Philosophically, adding any kind of client logging is far from ideal. Practically, this might be worth doing.

Contributor guide

No contributing guide indexed for this repository

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.