y509: X.509 인증서 체인을 보기 및 분석하기 위한 터미널 사용자 인터페이스 (TUI) 도구
Source: Dev.to
Introduction
터미널에서 openssl s_client -connect … -showcerts 의 출력을 눈을 가늘게 뜨고 해석해 본 적이 있나요?
작동은 하지만, 텍스트 벽을 스크롤하면서 발급자나 만료 날짜를 찾는 것은 결코 좋은 개발자 경험이 아닙니다.
“인증서 체인을 더 직관적이고, 인터랙티브하게, 그리고—무엇보다도—스타일 있게 확인하고 싶었습니다.”
이런 생각으로 y509 를 만들었습니다. Go 로 작성된 Bubble Tea 기반 TUI 도구입니다.

Links
- GitHub Repository:
What is y509?
y509는 X.509 인증서 체인을 보기 및 분석하기 위해 설계된 터미널 사용자 인터페이스(TUI) 도구입니다.
이름은 “X.509”을 장난스럽게 변형한 것이며, Y가 X 다음에 온다는 점에서 따온 것입니다.
Key Features
- 직관적인 TUI: 인증서 계층 목록과 상세 정보를 동시에 보여주는 두‑패널 인터페이스.
- 체인 검증: 상세 오류 보고와 함께하는 포괄적인 검증 기능.
- 검색 및 필터: CN, 조직, DNS 이름으로 인증서를 검색하고, 상태(만료/곧 만료)로 필터링.
- 내보내기 기능: 체인에서 선택한 인증서를 PEM 또는 DER 형식으로 내보냄.
- 상태 표시기: 만료되었거나 곧 만료될 인증서에 색상으로 경고 표시.
Motivation
-
TUI 도구를 만들고 싶었다
k9s 같은 도구를 사용하면서 TUI가 얼마나 멋진지 깨달았습니다. 터미널을 떠나지 않고 풍부하고 인터랙티브한 경험을 제공할 수 있다는 점이 매력적이었고, 최신 라이브러리를 활용해 직접 만들어 보기로 했습니다. -
인증서 체인 확인이 번거롭다
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)을 눌러 주시면 큰 힘이 됩니다.