age-plugin-yubikey VS mkcert

Compare age-plugin-yubikey vs mkcert and see what are their differences.

mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like. (by FiloSottile)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
age-plugin-yubikey mkcert
11 130
497 45,716
- -
5.5 2.7
16 days ago 8 days ago
Rust Go
Apache License 2.0 BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

age-plugin-yubikey

Posts with mentions or reviews of age-plugin-yubikey. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-25.
  • Age: Modern file encryption format with multiple pluggable recipients
    13 projects | news.ycombinator.com | 25 Feb 2023
    _o/ hi all, age author here!

    The OP link is the spec, here's a few other things you might find interesting

    - the Go reference implementation https://age-encryption.org

    - the Go library docs https://pkg.go.dev/filippo.io/age

    - the CLI man page https://filippo.io/age/age.1

    - an interoperable Rust implementation by @str4d https://github.com/str4d/rage

    - a YubiKey plugin by @str4d https://github.com/str4d/age-plugin-yubikey

    - the draft plugin protocol specification (which we should really merge) https://github.com/C2SP/C2SP/pull/5/files?short_path=07bf8cc...

    - a Windows GUI by @spieglt https://github.com/spieglt/winage

    - a discussion of the authentication properties of age https://words.filippo.io/dispatches/age-authentication/

    - a discussion of a potential post-quantum plugin https://words.filippo.io/dispatches/post-quantum-age/

    - a password-store fork that uses age instead of gpg https://github.com/FiloSottile/passage (see also: how I use it with a YubiKey https://words.filippo.io/dispatches/passage/)

  • Add the same key to a retired PIV slot of two different Yubikey's
    2 projects | /r/yubikey | 4 Jan 2023
    I am using the yubikey plug-in for age (https://github.com/str4d/age-plugin-yubikey). It creates a private key and writes it to one of the retired PIV slot. What I want to do is to write the same private key to two different Yubikeys.
  • age.el: age encryption support for Emacs
    8 projects | /r/emacs | 29 Dec 2022
    So with age I can also just use my ssh public key to encrypt and my ssh private key to decrypt my files. If I want to get fancy, I can use something like https://github.com/str4d/age-plugin-yubikey to provide the key material for my age operations (which should compose with age.el quite well also, i.e. you can have every decrypt operation have a touch requirement in Emacs that way).
  • age v1.1.0-rc.1: plugin and Yubikeys support
    3 projects | news.ycombinator.com | 11 Jun 2022
    > A good feature of PIV applet of Yubikey 5 is that it stores 24 keys.

    Note that not all 24 of those keys are suitable for age usage. The 4 main keys have specific usage definitions in the PIV specification that mean hardware tokens alter how those key slots behave. Only one of them (the KeyManagement slot) has a definition that allows encryption, and even that I was somewhat suspicious of overlapping with, as I couldn't predict how those existing keys were being used, and didn't want to support every possible key type that might be in that slot (which users likely wouldn't be able to alter).

    age-plugin-yubikey avoids this complexity by only interacting with the 20 "retired" slots, which have no constraining definitions. (I am considering adding restricted support for the KeyManagement slot specifically for CAC card users who aren't allowed to add new keys to their cards [0], but this would be behind a default-off feature flag to keep the primary UX simple.)

    [0] https://github.com/str4d/age-plugin-yubikey/issues/62

  • Age encryption plugin for Yubikey exits beta
    1 project | news.ycombinator.com | 2 May 2022
  • Ask HN: CLI Tool for File Encryption?
    10 projects | news.ycombinator.com | 29 Apr 2022
  • Passage: A fork of password-store that uses age instead of GnuPG
    3 projects | news.ycombinator.com | 17 Dec 2021
    We designed the plugin protocol (https://hackmd.io/@str4d/age-plugin-spec) and generally the age recipient/identity structure specifically to enable the use of hardware or remote keys!

    For example, https://github.com/str4d/age-plugin-yubikey makes it very easy to use PIV tokens, including YubiKeys, with age. (Well, for now with rage, since plugin support is coming in age v1.1.0.)

    I argue against password-protecting keys by default because, unlike using hardware tokens, it doesn't protect against many threat models.

  • Clever uses of pass, the Unix password manager
    22 projects | news.ycombinator.com | 16 Dec 2021
  • Age v1.0.0 – simple, modern and secure file encryption
    8 projects | news.ycombinator.com | 6 Sep 2021
    Hardware? I assume if someone was concerned about key access they wouldn't want keys on their filesystem at all but move them into an HSM instead. Since age identities can come from standard input I assume it'd be feasible to put together a workflow there coming from one of the various cli utilities for interacting with keys. There is already a YubiKey specific age plugin [0] getting worked on as well. Currently in beta but looks interesting. Hopefully that will continue to expand to cover other common options. HSM support is pretty important for a modern encryption utility IMO but unfortunately the landscape is pretty all over the place too, so makes sense to just leave it to plugins or as part of a unix flow.

    ----

    0: https://github.com/str4d/age-plugin-yubikey

  • Yubikey PIV encrypted messaging system
    4 projects | /r/crypto | 27 Aug 2021
    age also has a notion of plugins, one of which is age-plugin-yubikey (written in Rust, there is also yubage written in Go) which allows you to create an age identity whose private key is stored via PIV.

mkcert

Posts with mentions or reviews of mkcert. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-11.
  • Mkcert: Simple tool to make locally trusted dev certificates names you'd like
    1 project | news.ycombinator.com | 15 Mar 2024
  • You Can't Follow Me
    7 projects | news.ycombinator.com | 11 Jan 2024
    The author mentions difficulties with HTTPS and trying stuff locally.

    I've had some success with mkcert [1] to easily create certificates trusted by browsers, I can suggest to look into this. You are your own root CA, I think it can work without an internet connection.

    [1] https://github.com/FiloSottile/mkcert/

  • SSL Certificates for Home Network
    1 project | /r/homelab | 7 Dec 2023
  • Simplifying Localhost HTTPS Setup with mkcert and stunnel
    1 project | dev.to | 27 Nov 2023
    Solution: mkcert – Your Zero-Configuration HTTPS Enabler Meet mkcert, a user-friendly, zero-configuration tool designed for creating locally-trusted development certificates. Find it on its GitHub page and follow the instructions tailored for your operating system. For Mac users employing Homebrew, simply execute the following commands in your terminal:
  • 10 reasons you should quit your HTTP client
    5 projects | dev.to | 15 Nov 2023
    Well, Certifi does not ship with your company's certificates! So requesting internal services may come with additional painful extra steps! Also for a local development environment that uses mkcert for example!
  • Show HN: Anchor – developer-friendly private CAs for internal TLS
    4 projects | news.ycombinator.com | 1 Nov 2023
    My project, getlocalcert.net[1] may be the one you're thinking of.

    Since I'm also building in this space, I'll give my perspective. Local certificate generation is complicated. If you spend the time, you can figure it out, but it's begging for a simpler solution. You can use tools like mkcert[2] for anything that's local to your machine. However, if you're already using ACME in production, maybe you'd prefer to use ACME locally? I think that's what Anchor offers, a unified approach.

    There's a couple references in the Anchor blog about solving the distribution problem by building better tooling[3]. I'm eager to learn more, that's a tough nut to crack. My theory for getlocalcert is that the distribution problem is too difficult (for me) to solve, so I layer the tool on top of Let's Encrypt certificates instead. The end result for both tools is a trusted TLS certificate issued via ACME automation.

    1. https://news.ycombinator.com/item?id=36674224

    2. https://github.com/FiloSottile/mkcert

    3. https://blog.anchor.dev/the-acme-gap-introducing-anchor-part...

  • Running one’s own root Certificate Authority in 2023
    12 projects | news.ycombinator.com | 16 Sep 2023
    Looks like step-ca/step-cli [1] and mkcert [2] have been mentioned. Another related tool is XCA [3] - a gui tool to manage CAs and server/client TLS certificates. It takes off some of the tedium in using openssl cli directly. It also stores the certs and keys in an encrypted database. It doesn't solve the problem of getting the root CA certificate into the system store or of hosting the revocation list. I use XCA to create and store the root CA. Intermediate CAs signed with it are passed to other issuers like vault and step-issuer.

    [1] https://smallstep.com/docs/step-ca/

    [2] https://github.com/FiloSottile/mkcert

    [3] https://hohnstaedt.de/xca/

  • Show HN: Local development with .local domains and HTTPS
    5 projects | news.ycombinator.com | 1 Aug 2023
    We use mkcert for this, it works wonderfully.

    https://github.com/FiloSottile/mkcert

  • Implementing TLS in Kubernetes
    13 projects | dev.to | 1 Aug 2023
    mkcert: This is used to obtain a trusted TLS certificate with a custom domain name for your development machine. You can install mkcert on your development machine following the official instructions.
  • Easy HTTPS for your private networks
    13 projects | news.ycombinator.com | 10 Jul 2023
    I've been pretty frustrated with how private CAs are supported. Your private root CA can be maliciously used to MITM every domain on the Internet, even though you intend to use it for only a couple domain names. Most people forget to set Name Constraints when they create these and many helper tools lack support [1][2]. Worse, browser support for Name Constraints has been slow [3] and support isn't well tracked [4]. Public CAs give you certificate transparency and you can subscribe to events to detect mis-issuance. Some hosted private CAs like AWS's offer logs [5], but DIY setups don't.

    Even still, there are a lot of folks happily using private CAs, they aren't the target audience for this initial release.

    [1] https://github.com/FiloSottile/mkcert/issues/302

    [2] https://github.com/cert-manager/cert-manager/issues/3655

    [3] https://alexsci.com/blog/name-non-constraint/

    [4] https://github.com/Netflix/bettertls/issues/19

    [5] https://docs.aws.amazon.com/privateca/latest/userguide/secur...

What are some alternatives?

When comparing age-plugin-yubikey and mkcert you can also consider the following projects:

age - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

minica - minica is a small, simple CA intended for use in situations where the CA operator also operates each host where a certificate will be used.

gopass - The slightly more awesome standard unix password manager for teams

nginx-docker-ssl-proxy - A docker way to access localhost:8081 from https://local.dev

rage - A simple, secure and modern file encryption tool (and Rust library) with small explicit keys, no config options, and UNIX-style composability.

certificates - πŸ›‘οΈ A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.

minisign - A dead simple tool to sign files and verify digital signatures.

gosumemory - Cross-Platform memory reader for osu!

yubikey-agent - yubikey-agent is a seamless ssh-agent for YubiKeys.

rustls - A modern TLS library in Rust

passforios - Pass for iOS - an iOS client compatible with Pass command line application.

uvicorn - An ASGI web server, for Python. πŸ¦„