<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp" -->

---
title: How to Use Certificate Pinning to Improve UX | daily.dev
description: Teleport's SSH certificate authority pinning feature, introduced in version 3.1 via the --ca-pin flag, lets new nodes verify a Teleport Auth Server's identity...
canonical: https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to Use Certificate Pinning to Improve UX | daily.dev
og:description: Teleport's SSH certificate authority pinning feature, introduced in version 3.1 via the --ca-pin flag, lets new nodes verify a Teleport Auth Server's identity...
og:url: https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp
og:image: https://api.daily.dev/og/posts/XR7eHtdKp.png
og:image:alt: How to Use Certificate Pinning to Improve UX
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Use Certificate Pinning to Improve UX

**[Teleport](https://daily.dev/sources/teleport)** · 4 min read · 0 upvotes · 0 comments

## Summary

Teleport's SSH certificate authority pinning feature, introduced in version 3.1 via the --ca-pin flag, lets new nodes verify a Teleport Auth Server's identity without manually distributing CA certificates out-of-band. Inspired by kubeadm's --discovery-token-ca-cert-hash flag, it works by having the node fetch the CA's public key over an insecure channel, hash it with SHA256, and compare against the pinned hash before establishing a fully trusted connection.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://goteleport.com/blog/ssh-certificate-authority-pinning>

## Questions this post answers

### How does Teleport's --ca-pin flag work to verify a new node's connection to the Auth Server?

The joining node connects to the Auth Server over an insecure channel, retrieves the CA's public key, and computes a SHA256 hash of its RawSubjectPublicKeyInfo field. If that hash matches the value passed via --ca-pin, the node proceeds to build a fully secured connection using the CA to validate the server's certificate; otherwise it aborts the connection as potentially compromised.

_daily.dev surfaces practical security patterns like certificate pinning for teams securing internal infrastructure._

### What inspired Teleport's SSH certificate authority pinning feature?

Teleport's --ca-pin flag was modeled on kubeadm's --discovery-token-ca-cert-hash flag, which solves the same trust bootstrapping problem in Kubernetes clusters. Both mechanisms let a joining node validate a cluster's certificate authority without needing that CA pre-installed in the operating system's trust store, avoiding manual out-of-band distribution of cryptographic material.

_Developers comparing cluster bootstrapping approaches can track patterns like this via daily.dev._

## Similar posts on daily.dev

- [Stop managing SSH keys on every server and switch to Teleport](https://daily.dev/posts/stop-managing-ssh-keys-on-every-server-and-switch-to-teleport-zoja48gov) · All Things Open · 0 upvotes · 0 comments
- [Jan-Piet Mens :: SSH certificates: the better SSH experience](https://daily.dev/posts/jan-piet-mens-ssh-certificates-the-better-ssh-experience-f1ftumowi) · Jan-Piet Mens · 0 upvotes · 0 comments
- [How to manage TLS certificates used by OpenShift GitOps operator](https://daily.dev/posts/how-to-manage-tls-certificates-used-by-openshift-gitops-operator-ovuaw2aj0) · Red Hat Developer · 0 upvotes · 0 comments
- [SSH certificates and git signing](https://daily.dev/posts/ssh-certificates-and-git-signing-xbor3hzac) · Lobsters · 6 upvotes · 1 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#ssh](https://daily.dev/tags/ssh)

[View this post on daily.dev](https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to Use Certificate Pinning to Improve UX","url":"https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp"},"datePublished":"2026-08-23T12:23:13.672Z","dateModified":"2026-08-23T12:51:34.520Z","description":"Teleport's SSH certificate authority pinning feature, introduced in version 3.1 via the --ca-pin flag, lets new nodes verify a Teleport Auth Server's identity...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","isAccessibleForFree":true,"articleSection":"Teleport","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Teleport","logo":"https://media.daily.dev/image/upload/s--Dw-Bbw6O--/c_limit,w_256/f_auto,q_auto/v1787487494/logos/teleport?_a=BAMAMicg0","url":"https://daily.dev/sources/teleport"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,ssh","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Teleport","item":"https://daily.dev/sources/teleport"},{"@type":"ListItem","position":3,"name":"How to Use Certificate Pinning to Improve UX"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-use-certificate-pinning-to-improve-ux-xr7ehtdkp#faq","mainEntity":[{"@type":"Question","name":"How does Teleport's --ca-pin flag work to verify a new node's connection to the Auth Server?","acceptedAnswer":{"@type":"Answer","text":"The joining node connects to the Auth Server over an insecure channel, retrieves the CA's public key, and computes a SHA256 hash of its RawSubjectPublicKeyInfo field. If that hash matches the value passed via --ca-pin, the node proceeds to build a fully secured connection using the CA to validate the server's certificate; otherwise it aborts the connection as potentially compromised. daily.dev surfaces practical security patterns like certificate pinning for teams securing internal infrastructure."}},{"@type":"Question","name":"What inspired Teleport's SSH certificate authority pinning feature?","acceptedAnswer":{"@type":"Answer","text":"Teleport's --ca-pin flag was modeled on kubeadm's --discovery-token-ca-cert-hash flag, which solves the same trust bootstrapping problem in Kubernetes clusters. Both mechanisms let a joining node validate a cluster's certificate authority without needing that CA pre-installed in the operating system's trust store, avoiding manual out-of-band distribution of cryptographic material. Developers comparing cluster bootstrapping approaches can track patterns like this via daily.dev."}}]}
```

