y509: X.509 인증서 체인을 보기 및 분석하기 위한 터미널 사용자 인터페이스 (TUI) 도구

발행: (2026년 1월 10일 오전 12:01 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

Introduction

터미널에서 openssl s_client -connect … -showcerts 의 출력을 눈을 가늘게 뜨고 해석해 본 적이 있나요?
작동은 하지만, 텍스트 벽을 스크롤하면서 발급자나 만료 날짜를 찾는 것은 결코 좋은 개발자 경험이 아닙니다.

“인증서 체인을 더 직관적이고, 인터랙티브하게, 그리고—무엇보다도—스타일 있게 확인하고 싶었습니다.”

이런 생각으로 y509 를 만들었습니다. Go 로 작성된 Bubble Tea 기반 TUI 도구입니다.

y509 demo

  • GitHub Repository:

What is y509?

y509는 X.509 인증서 체인을 보기 및 분석하기 위해 설계된 터미널 사용자 인터페이스(TUI) 도구입니다.
이름은 “X.509”을 장난스럽게 변형한 것이며, Y가 X 다음에 온다는 점에서 따온 것입니다.

Key Features

  • 직관적인 TUI: 인증서 계층 목록과 상세 정보를 동시에 보여주는 두‑패널 인터페이스.
  • 체인 검증: 상세 오류 보고와 함께하는 포괄적인 검증 기능.
  • 검색 및 필터: CN, 조직, DNS 이름으로 인증서를 검색하고, 상태(만료/곧 만료)로 필터링.
  • 내보내기 기능: 체인에서 선택한 인증서를 PEM 또는 DER 형식으로 내보냄.
  • 상태 표시기: 만료되었거나 곧 만료될 인증서에 색상으로 경고 표시.

Motivation

  1. TUI 도구를 만들고 싶었다
    k9s 같은 도구를 사용하면서 TUI가 얼마나 멋진지 깨달았습니다. 터미널을 떠나지 않고 풍부하고 인터랙티브한 경험을 제공할 수 있다는 점이 매력적이었고, 최신 라이브러리를 활용해 직접 만들어 보기로 했습니다.

  2. 인증서 체인 확인이 번거롭다
    openssl 으로 인증서 체인을 보는 것은 번거롭고, step(smallstep) CLI 같은 최신 도구도 순수 텍스트 출력만 제공합니다. 시각적이고 인터랙티브한 도구가 있으면 작업이 더 빠르고 즐거워집니다.

Installation

macOS (via Homebrew)

brew tap kanywst/y509 https://github.com/kanywst/y509
brew install y509

Go Install

go install github.com/kanywst/y509@latest

Usage

y509는 로컬 파일에서 읽는 것뿐만 아니라 표준 입력(stdin)에서도 직접 읽을 수 있습니다.

The Killer Feature: Piping from OpenSSL

openssl s_client -connect example.com:443 -showcerts | y509

Reading from a File

y509 path/to/certificate-chain.pem

Controls

도구는 Vim‑like 키 바인딩을 사용합니다.

동작
j / k인증서 목록을 위·아래로 이동
h / l리스트 패널과 상세 패널 사이 전환
:명령 모드 진입
q애플리케이션 종료

Command Mode

: 를 눌러 명령 모드에 들어갑니다. 여기서 검증, 검색, 내보내기 등 고급 작업을 수행할 수 있습니다.

예시

  • 검색: search google – CN/SAN/Org에 “google”이 포함된 인증서를 찾습니다.
  • 필터: filter expiring – 30일 이내에 만료되는 인증서를 표시합니다.
  • 내보내기: export pem output.pem – 선택한 인증서를 파일에 저장합니다.
  • 검증: validate – 체인 검증 로직을 실행합니다.

Tech Stack

이 프로젝트는 Go 로 구축되었으며 Charm 라이브러리를 사용합니다:

  • Bubble Tea – Elm Architecture 기반 강력한 TUI 프레임워크.
  • Lip Gloss – TUI 스타일 정의를 위한 라이브러리.

이 라이브러리들은 Go 생태계에서 현대 CLI 도구 개발의 사실상 표준이 되었습니다.

Conclusion

TUI를 만들면서 평범했던 인증서 검증 작업을 시각적으로 흥미로운 경험으로 바꿀 수 있었습니다. 인증서 체인을 디버깅해야 할 때 이 도구가 도움이 되길 바랍니다!

한 번 사용해 보시고 의견을 댓글로 알려 주세요. 프로젝트가 유용하다면 GitHub에 별(star)을 눌러 주시면 큰 힘이 됩니다.

Back to Blog

관련 글

더 보기 »