cert

cert はリモート/ローカルの TLS 情報を調べ、信頼とホスト名を検証し、証明書と秘密鍵の対応を確認し、鍵・CSR・署名済み証明書を作成し、PEM、DER、PKCS#12 を変換します。

セキュリティバージョン 1.2.4安定版
lil-terminal

概要

システムの OpenSSL コマンドに頼らず、TLS 診断と証明書準備の両方に cert を使います。リモート検証は既定で有効で、-k は診断時の例外です。生成した秘密鍵は制限された権限で保存されます。

身元、信頼、鍵の対応は別々の検証です

証明書が有効期間内でも、信頼やホスト名の検証に失敗することがあります。また秘密鍵と一致しない場合もあります。-v は信頼/名前、-m は証明書と鍵の組、-h -chain はリモートサーバーが実際に提示する証明書チェーンを確認します。

構文

lil-terminal
cert <operation> [args] [options]

リファレンス

cert -h me [port]

現在のホストの TLS 証明書を調べる

cert -h <host|url> [port]

リモート TLS 証明書を調べる

cert -i <file> [-p <pass>]

ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる

cert -v <cert> [-ca <file>] [-chain <file>] [-host <name>] [-client]

有効期間、信頼、ホスト名を検証する

cert -m <cert> <key> [-p <pass>]

証明書と秘密鍵が一致するか確認する

cert -key <out> [-rsa <bits>|-ec <curve>] [-p <pass>] [-f]

秘密鍵を作成する

cert -csr <key> <out> <dn> [-san <list>] [-p <pass>] [-f]

証明書署名要求を作成する

cert -self <key> <out> <dn> [-san <list>] [-p <pass>] [-f]

自己署名証明書を作成する

cert -sign <csr> <ca> <key> <out> [-san <list>] [-p <pass>] [-f]

CA 証明書で CSR に署名する

cert -der <cert> [out] [-f]

PEM 証明書を DER に変換する

cert -pem <cert> [out] [-f]

DER 証明書を PEM に変換する

cert -p12 <cert> <key> [out] [-p <pass>] [-kp <pass>] [-f]

PKCS#12 バンドルを作成する

cert -p12 -r <bundle> [dir] [-p <pass>] [-f]

PKCS#12 バンドルを抽出する

-j | -json

-h、-i、-v、-m の結果を JSON で表示する

-t [seconds]

リモート TLS に既定 5 秒または 1〜300 秒のタイムアウトを使う

-T

リモート TLS に 300 秒のタイムアウトを使う

-4 | -6

リモート TLS で IPv4 または IPv6 を使う

-k

未検証のリモート TLS 証明書を許可する

-chain

リモート証明書チェーン全体を表示する

-sni <name>

TLS SNI 名を上書きする

-ca <file>

対応する操作で明示的な CA ファイルを使う

-host <name>

一つのホスト名に対して証明書を検証する

-client

TLS クライアント用途として検証する

-p <pass>

操作用パスワードを指定する

-f

生成ファイルの置換を許可する

対象ショートカット

me は PHP から見える現在の HTTP ホストを表します。このターミナルを配信しているサイトの証明書を、ホスト名を再入力せずに調べるときに使います。

セキュリティ

リモート証明書は既定で検証されます。秘密鍵ファイルは制限された権限で書き込まれます。-k は信頼問題と TLS 到達性を切り分ける診断にだけ使い、非表示入力が使える場合はパスワードを見える履歴へ書かないでください。

JSON 出力

別のコマンドや API ワークフローで機械可読の証明書診断が必要な場合は、-h、-i、-v、-m と -j または -json を組み合わせます。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

リモート TLS 証明書を調べる

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install cert
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install cert -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install cert -v 1.2.4
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade cert
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install cert -u

例

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

リモート TLS 証明書を調べる
cert -h me
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -t 5
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -T
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -4
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -6
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         2001:db8::80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -chain
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
Chain      2 certificates
リモート TLS 証明書を調べる
cert -h example.test -sni www.example.test
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
SNI        www.example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (www.example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -k
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     unverified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
リモート TLS 証明書を調べる
cert -h example.test -j
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
{
    "rows": [
        {
            "name": "Host",
            "value": "example.test"
        },
        {
            "name": "IP",
            "value": "192.0.2.80"
        },
        {
            "name": "Port",
            "value": "443"
        },
        {
            "name": "Status",
            "value": "verified"
        },
        {
            "name": "Time",
            "value": "14.8 ms"
        },
        {
            "name": "TLS",
            "value": "TLSv1.3"
        },
        {
            "name": "Cipher",
            "value": "TLS_AES_256_GCM_SHA384"
        },
        {
            "name": "Hostname",
            "value": "valid (example.test)"
        },
        {
            "name": "Subject",
            "value": "CN=example.test"
        },
        {
            "name": "Issuer",
            "value": "CN=Training CA"
        },
        {
            "name": "Valid to",
            "value": "2027-10-31 00:00:00 UTC"
        }
    ]
}
リモート TLS 証明書を調べる
cert -h example.test -o tmp/chain.pem
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Host       example.test
IP         192.0.2.80
Port       443
Status     verified
Time       14.8 ms
TLS        TLSv1.3
Cipher     TLS_AES_256_GCM_SHA384
Hostname   valid (example.test)
Subject    CN=example.test
Issuer     CN=Training CA
Valid to   2027-10-31 00:00:00 UTC
Saved      sandbox/tmp/chain.pem
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.crt
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File              sandbox/certs/server.crt
Certificates      1

Certificate 1:    
Subject           CN=example.test, O=lil
Issuer            CN=example.test, O=lil
Serial            01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD
Valid from        2026-08-09 08:38:07 UTC
Valid to          2036-08-06 08:38:07 UTC
Validity          valid, 3566 days remaining
SAN               DNS:example.test, DNS:www.example.test
Key               RSA
Key bits          2048
Signature         RSA-SHA256
SHA256            FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD
Constraints       CA:FALSE
Key usage         Digital Signature, Key Encipherment
Extended usage    TLS Web Server Authentication
Subject key ID    D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D
Authority key ID  D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.csr
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File      sandbox/certs/server.csr
Type      CSR
Subject   CN=example.test, O=lil
Key       RSA
Key bits  2048
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.key
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File      sandbox/certs/server.key
Type      private key
Key       RSA
Key bits  2048
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.p12 -p demo
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File            sandbox/certs/server.p12
Type            PKCS#12
Certificates    1
Private key     yes

Certificate 1:  
Subject         CN=example.test, O=lil
Issuer          CN=example.test, O=lil
Serial          01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD
Valid from      2026-08-09 08:38:07 UTC
Valid to        2036-08-06 08:38:07 UTC
Validity        valid, 3566 days remaining
SAN             DNS:example.test, DNS:www.example.test
Key             RSA
Key bits        2048
Signature       RSA-SHA256
SHA256          FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.crt -json
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
{
    "rows": [
        {
            "name": "File",
            "value": "sandbox/certs/server.crt"
        },
        {
            "name": "Certificates",
            "value": "1"
        },
        {
            "name": "Certificate 1:",
            "value": ""
        },
        {
            "name": "Subject",
            "value": "CN=example.test, O=lil"
        },
        {
            "name": "Issuer",
            "value": "CN=example.test, O=lil"
        },
        {
            "name": "Serial",
            "value": "01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD"
        },
        {
            "name": "Valid from",
            "value": "2026-08-09 08:38:07 UTC"
        },
        {
            "name": "Valid to",
            "value": "2036-08-06 08:38:07 UTC"
        },
        {
            "name": "Validity",
            "value": "valid, 3566 days remaining"
        },
        {
            "name": "SAN",
            "value": "DNS:example.test, DNS:www.example.test"
        },
        {
            "name": "Key",
            "value": "RSA"
        },
        {
            "name": "Key bits",
            "value": "2048"
        },
        {
            "name": "Signature",
            "value": "RSA-SHA256"
        },
        {
            "name": "SHA256",
            "value": "FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD"
        },
        {
            "name": "Constraints",
            "value": "CA:FALSE"
        },
        {
            "name": "Key usage",
            "value": "Digital Signature, Key Encipherment"
        },
        {
            "name": "Extended usage",
            "value": "TLS Web Server Authentication"
        },
        {
            "name": "Subject key ID",
            "value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
        },
        {
            "name": "Authority key ID",
            "value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
        }
    ]
}
有効期間、信頼、ホスト名を検証する
cert -v certs/server.crt -host example.test
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File      sandbox/certs/server.crt
Purpose   TLS server
Time      valid
Trust     invalid
Hostname  valid (example.test)
Result    invalid
有効期間、信頼、ホスト名を検証する
cert -v certs/server.crt -ca certs/server.crt
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File     sandbox/certs/server.crt
Purpose  TLS server
Time     valid
Trust    valid
Result   valid
有効期間、信頼、ホスト名を検証する
cert -v certs/server.crt -client
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File     sandbox/certs/server.crt
Purpose  TLS client
Time     valid
Trust    invalid
Result   invalid
証明書と秘密鍵が一致するか確認する
cert -m certs/server.crt certs/server.key
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Certificate  sandbox/certs/server.crt
Private key  sandbox/certs/server.key
Result       match
証明書と秘密鍵が一致するか確認する
cert -m certs/server.crt certs/server.key -j
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
{
    "rows": [
        {
            "name": "Certificate",
            "value": "sandbox/certs/server.crt"
        },
        {
            "name": "Private key",
            "value": "sandbox/certs/server.key"
        },
        {
            "name": "Result",
            "value": "match"
        }
    ]
}
秘密鍵を作成する
cert -key tmp/demo.key -rsa 2048
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.key
draft.txt
new.txt
秘密鍵を作成する
cert -key tmp/demo-ec.key -ec prime256v1
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo-ec.key
draft.txt
new.txt
証明書署名要求を作成する
cert -csr certs/server.key tmp/demo.csr "CN=example.test" -san DNS:example.test
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.csr
draft.txt
new.txt
自己署名証明書を作成する
cert -self certs/server.key tmp/demo.crt "CN=example.test" -san DNS:example.test
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.crt
draft.txt
new.txt
PEM 証明書を DER に変換する
cert -der certs/server.crt tmp/demo.der
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.der
draft.txt
new.txt
DER 証明書を PEM に変換する
cert -pem certs/server.der tmp/demo.pem
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.pem
draft.txt
new.txt
PKCS#12 バンドルを作成する
cert -p12 certs/server.crt certs/server.key tmp/demo.p12
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.p12
draft.txt
new.txt
Cert · demo
cert -p12 -r certs/server.p12 tmp/unpacked -p demo
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
server.cert.pem
server.key.pem
CA 証明書で CSR に署名する
cert -sign certs/server.csr certs/server.crt certs/server.key tmp/signed.crt
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
CA certificate is not allowed to sign certificates
有効期間、信頼、ホスト名を検証する
cert -v certs/server.crt -chain certs/server.crt
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File     sandbox/certs/server.crt
Purpose  TLS server
Time     valid
Trust    invalid
Result   invalid
リモート TLS 証明書を調べる
cert -h example.test -4 -6
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Choose either IPv4 or IPv6
リモート TLS 証明書を調べる
cert -h example.test -t 301
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Invalid timeout
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/missing.pem
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
File not found
有効期間、信頼、ホスト名を検証する
cert -v certs/missing.pem
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Certificate not found
証明書と秘密鍵が一致するか確認する
cert -m certs/server.crt certs/missing.key
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Private key not found
秘密鍵を作成する
cert -key tmp/demo.key -rsa 1024
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
RSA bits must be 2048–16384 in steps of 256
リモート TLS 証明書を調べる
cert -h example.test -sni
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
SNI name required
秘密鍵を作成する
cert -key tmp/demo.key -ec unknown
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Use prime256v1, secp384r1, or secp521r1
秘密鍵を作成する
cert -key tmp/demo.key -f -rsa 2048
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
README.txt
current.txt
demo.key
draft.txt
new.txt
自己署名証明書を作成する
cert -self certs/missing.key tmp/missing.crt "CN=example.test"
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Private key not found
リモート TLS 証明書を調べる
cert -h example.test -ca missing-ca.pem
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
CA file not found
Cert · -unknown
cert -unknown
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
Unknown cert operation
ローカル証明書、CSR、鍵、PKCS#12 バンドルを調べる
cert -i certs/server.crt -j -json
オフライン学習例 — 実際の HTTP・メール・TLS 通信はありません
{
    "rows": [
        {
            "name": "File",
            "value": "sandbox/certs/server.crt"
        },
        {
            "name": "Certificates",
            "value": "1"
        },
        {
            "name": "Certificate 1:",
            "value": ""
        },
        {
            "name": "Subject",
            "value": "CN=example.test, O=lil"
        },
        {
            "name": "Issuer",
            "value": "CN=example.test, O=lil"
        },
        {
            "name": "Serial",
            "value": "01FAB2F36D62878EE1C3EF872CC4924ADAE7FACD"
        },
        {
            "name": "Valid from",
            "value": "2026-08-09 08:38:07 UTC"
        },
        {
            "name": "Valid to",
            "value": "2036-08-06 08:38:07 UTC"
        },
        {
            "name": "Validity",
            "value": "valid, 3566 days remaining"
        },
        {
            "name": "SAN",
            "value": "DNS:example.test, DNS:www.example.test"
        },
        {
            "name": "Key",
            "value": "RSA"
        },
        {
            "name": "Key bits",
            "value": "2048"
        },
        {
            "name": "Signature",
            "value": "RSA-SHA256"
        },
        {
            "name": "SHA256",
            "value": "FE:BE:96:6B:FD:A6:EA:E5:98:E1:66:7E:A3:32:72:7D:E3:DE:37:CC:D8:2F:64:63:76:73:26:C6:4B:F5:7D:CD"
        },
        {
            "name": "Constraints",
            "value": "CA:FALSE"
        },
        {
            "name": "Key usage",
            "value": "Digital Signature, Key Encipherment"
        },
        {
            "name": "Extended usage",
            "value": "TLS Web Server Authentication"
        },
        {
            "name": "Subject key ID",
            "value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
        },
        {
            "name": "Authority key ID",
            "value": "D6:14:0F:93:56:90:A8:E6:CC:3D:8C:D5:16:AE:EB:05:0C:07:8B:1D"
        }
    ]
}

関連ドキュメント

現在の公開版

v1.2.42026-08-09

言語同期

cert のローカルヘルプとサーバーヘルプの同期を完了し、ローカライズの安全性を強化します。