
OpenSSL के CLI का एक तेज़, आधुनिक विकल्प - टर्मिनल से प्रमाणपत्रों का निरीक्षण, ग्रेडिंग और प्रबंधन करें
openssl, लेकिन आपको फ़्लैग्स के लिए गूगल करने की ज़रूरत नहीं है।
एक एकल बाइनरी जो प्रमाणपत्रों, TLS कनेक्शनों, और उन सभी चीज़ों को संभालता है जिनके लिए आपको सामान्यतः तीन अलग-अलग openssl आदेशों की आवश्यकता होती है। Rust और rustls के साथ बनाया गया है, कोई सिस्टम OpenSSL आवश्यक नहीं है।

cargo install sslx
प्रीबिल्ट बाइनरीज़ रिलीज़ पेज पर उपलब्ध हैं।
Homebrew:
brew install glincker/tap/sslx
या सीधे डाउनलोड करें:
# macOS (Apple Silicon)
curl -fsSL https://github.com/glincker/sslx/releases/latest/download/sslx-macos-aarch64 -o sslx && chmod +x sslx
# Linux
curl -fsSL https://github.com/glincker/sslx/releases/latest/download/sslx-linux-x86_64 -o sslx && chmod +x sslx
किसी भी होस्ट के TLS सेटअप को रेट करें, SSL Labs की तरह लेकिन आपके टर्मिनल से:
$ sslx grade github.com
╭──────────────────────────────────────────╮
│ github.com:443 Grade: A+ │
╰──────────────────────────────────────────╯
✓ Protocol TLS 1.3
✓ Cipher TLS13_AES_128_GCM_SHA256 (AEAD)
✓ Certificate Valid, 49 days remaining
✓ Key ECDSA P-256 (256 bit)
✓ Hostname github.com in SANs
✓ Chain Complete (3 certs)
✓ ALPN HTTP/2 supported
प्रोटोकॉल संस्करण, सिफ़र शक्ति, प्रमाणपत्र वैधता, कुंजी प्रकार, होस्टनाम मिलान, श्रृंखला पूर्णता और ALPN की जाँच करता है। आपको A+ से F तक का लेटर ग्रेड देता है।
एक साथ कई होस्टों पर प्रमाणपत्र समाप्ति की जाँच करें:
$ sslx expiry google.com github.com cloudflare.com stripe.com
Host Expires Days Status
────────────────────────────────────────────────────────────────
✓ google.com:443 2026-06-15 61 OK
✓ github.com:443 2026-06-03 49 OK
✓ cloudflare.com:443 2026-06-10 56 OK
✓ stripe.com:443 2026-09-01 139 OK
यदि 7 दिनों के भीतर कुछ भी समाप्त होता है तो निकास कोड 1. क्रॉन जॉब्स या CI पाइपलाइनों में उपयोगी।
रंगीन आउटपुट के साथ PEM या DER प्रमाणपत्र फ़ाइल पढ़ें:
$ sslx inspect cert.pem
╭─ Certificate 1 of 1 ──────────────────────────────────╮
│ Subject: CN=*.example.com │
│ Issuer: CN=Let's Encrypt Authority X3 │
│ Serial: 0A:1B:2C:3D... │
│ │
│ Valid: 2026-01-15 → 2026-04-15 │
│ Expires: ██░░░░░░░░ 12 days remaining [!] │
│ │
│ Key: ECDSA P-256 (256 bit) │
│ SANs: *.example.com, example.com │
│ SHA-256: AB:CD:EF:12:34... │
╰──────────────────────────────────────────────────────────╯
मल्टी-सर्टिफिकेट बंडलों को भी संभालता है। PEM बनाम DER का स्वतः पता लगाता है।
किसी भी होस्ट के लिए पूर्ण TLS हैंडशेक विवरण और प्रमाणपत्र श्रृंखला देखें:
$ sslx connect example.com
Connection to example.com:443
TLS 1.3 · TLS13_AES_256_GCM_SHA384
ALPN: h2
Chain:
╭─ Certificate 1 of 3 ─────────────────────────╮
│ Subject: CN=*.example.com │
│ Valid: 61 days remaining ✓ │
│ Key: ECDSA P-256 (256 bit) │
╰────────────────────────────────────────────────╯
↓ signed by
╭─ Certificate 2 of 3 (CA) ────────────────────╮
│ ... │
╰────────────────────────────────────────────────╯
एक कमांड में स्थानीय डिव के लिए स्व-हस्ताक्षरित प्रमाणपत्र:
sslx generate --cn localhost --san "*.local,127.0.0.1"
डिफ़ॉल्ट रूप से EC P-256 के साथ cert.pem और key.pem बनाता है। ec384 और ed25519 का भी समर्थन करता है।
sslx csr --cn example.com --san "*.example.com,api.example.com"
csr.pem और key.pem बनाता है। CSR को अपने CA को सबमिट करें।
sslx convert cert.pem --to der # PEM to DER
sslx convert cert.der --to pem # DER to PEM
sslx convert bundle.p12 --to pem # PKCS12 to PEM
इनपुट प्रारूप का स्वतः पता लगाता है।
$ sslx match cert.pem key.pem
✓ Certificate and key match (ECDSA P-256 (256 bit))
अब मैन्युअल रूप से मापांक हैश की तुलना नहीं करनी पड़ेगी।
sslx extract bundle.p12 --password mypass --out ./certs
लीफ प्रमाणपत्र, इंटरमीडिएट और कुंजी को अलग-अलग PEM फ़ाइलों में निकालता है।
इसे एक फ़ाइल या JWT टोकन दें और sslx पता लगाता है कि यह क्या है:
$ sslx decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
✓ Detected: JSON Web Token (JWT)
Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"1234567890","name":"John","iat":1516239022}
Expires: in 3 hours
PEM प्रमाणपत्र, DER फ़ाइलें, निजी कुंजियाँ, सार्वजनिक कुंजियाँ और CSR का भी पता लगाता है।
sslx verify cert.pem --ca ca-bundle.pem
✓ Certificate is valid
Chain: complete (3 certs)
Expiry: 328 days remaining
यदि विफल होता है तो आपको बताता है कि वास्तव में क्या गलत है, इसे ठीक करने के संकेतों के साथ।
प्रत्येक कमांड स्क्रिप्टिंग और CI के लिए --json का समर्थन करता है:
# check days until expiry
sslx connect example.com --json | jq '.chain.certificates[0].days_remaining'
# get the grade
sslx grade example.com --json | jq '.grade'
# list all SANs
sslx inspect cert.pem --json | jq '.certificates[0].sans'
| कोड | अर्थ |
|---|---|
| 0 | ठीक है |
| 1 | प्रमाणपत्र समाप्त या समाप्त हो रहा है |
| 3 | श्रृंखला अविश्वसनीय |
| 4 | कनेक्शन विफल |
macOS M2 पर 10 रन का माध्य:
| sslx | openssl | |
|---|---|---|
| प्रमाणपत्र निरीक्षण | 2.1ms | 9.4ms |
| प्रमाणपत्र उत्पन्न करें | 1.7ms | 4.5ms |
| स्टार्टअप | 1.3ms |
sslx completions bash > /etc/bash_completion.d/sslx
sslx completions zsh > ~/.zsh/completions/_sslx
sslx completions fish > ~/.config/fish/completions/sslx.fish
देखें CONTRIBUTING.md। बग और सुविधा अनुरोध issues में जाएँ।
MIT
| आप क्या कर रहे हैं | openssl | sslx |
|---|
| प्रमाणपत्र देखें | openssl x509 -in cert.pem -text -noout | sslx inspect cert.pem |
| TLS हैंडशेक | openssl s_client -connect host:443 2>/dev/null | openssl x509 -text | sslx connect host |
| श्रृंखला सत्यापित करें | openssl verify -CAfile ca.pem cert.pem | sslx verify cert.pem --ca ca.pem |
| स्व-हस्ताक्षरित प्रमाणपत्र | openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -keyout key.pem -out cert.pem -days 365 -nodes -batch -subj "/CN=localhost" | sslx generate --cn localhost |
| CSR बनाएं | openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -keyout key.pem -out csr.pem -batch -subj "/CN=example.com" | sslx csr --cn example.com |
| PEM से DER | openssl x509 -in cert.pem -outform DER -out cert.der | sslx convert cert.pem --to der |
| समाप्ति जाँचें | echo | openssl s_client -connect host:443 2>/dev/null | openssl x509 -noout -enddate | sslx expiry host |
| प्रमाणपत्र+कुंजी मिलान | diff <(openssl x509 -noout -modulus -in cert.pem) <(openssl rsa -noout -modulus -in key.pem) | sslx match cert.pem key.pem |
| TLS ग्रेड | (ssllabs.com पर जाएं) | sslx grade host |
| JWT डिकोड करें | (jwt.io पर जाएं) | sslx decode <token> |
| 5 |
| खराब फ़ाइल |