OpenSSL でよく使うコマンドのチートシート。
証明書の確認#
| コマンド | 説明 |
|---|
openssl x509 -in cert.pem -text -noout | 証明書の詳細を表示 |
openssl x509 -in cert.pem -noout -dates | 有効期限を表示 |
openssl x509 -in cert.pem -noout -subject | サブジェクトを表示 |
openssl x509 -in cert.pem -noout -issuer | 発行者を表示 |
openssl x509 -in cert.pem -noout -fingerprint | フィンガープリントを表示 |
リモートサーバーの確認#
| コマンド | 説明 |
|---|
openssl s_client -connect host:443 | SSL/TLS 接続して証明書を確認 |
openssl s_client -connect host:443 -showcerts | 証明書チェーン全体を表示 |
openssl s_client -connect host:443 -tls1_2 | TLS バージョンを指定して接続 |
秘密鍵(RSA)#
| コマンド | 説明 |
|---|
openssl genrsa -out key.pem 2048 | RSA 秘密鍵を生成(2048bit) |
openssl genrsa -aes256 -out key.pem 2048 | パスフレーズ付き秘密鍵を生成(対話入力) |
openssl genrsa -aes256 -passout pass:secret -out key.pem 2048 | パスフレーズをコマンドラインで指定 |
openssl genrsa -aes256 -passout env:PASSPHRASE -out key.pem 2048 | パスフレーズを環境変数で指定 |
openssl rsa -in key.pem -text -noout | 秘密鍵の詳細を表示 |
openssl rsa -in key.pem -pubout -out pub.pem | 公開鍵を抽出 |
openssl rsa -in encrypted.pem -out decrypted.pem | パスフレーズを除去 |
秘密鍵(ECDSA)#
| コマンド | 説明 |
|---|
openssl ecparam -name prime256v1 -genkey -noout -out key.pem | P-256 秘密鍵を生成 |
openssl ecparam -name secp384r1 -genkey -noout -out key.pem | P-384 秘密鍵を生成 |
openssl ecparam -name prime256v1 -genkey -noout | openssl ec -aes256 -passout pass:secret -out key.pem | パスフレーズをコマンドラインで指定して生成 |
openssl ec -in key.pem -aes256 -passout pass:secret -out encrypted.pem | 既存鍵にパスフレーズを付加 |
openssl ec -in key.pem -text -noout | 秘密鍵の詳細を表示 |
openssl ec -in key.pem -pubout -out pub.pem | 公開鍵を抽出 |
openssl ecparam -list_curves | 利用可能な曲線一覧を表示 |
CSR(証明書署名要求)#
| コマンド | 説明 |
|---|
openssl req -new -key key.pem -out req.csr | CSR を生成 |
openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out req.csr | 鍵と CSR を同時生成 |
openssl req -in req.csr -text -noout | CSR の内容を確認 |
自己署名証明書#
| コマンド | 説明 |
|---|
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 | 自己署名証明書を生成 |
openssl x509 -req -in req.csr -signkey key.pem -out cert.pem -days 365 | CSR から自己署名証明書を発行 |
フォーマット変換#
| コマンド | 説明 |
|---|
openssl x509 -in cert.pem -out cert.der -outform DER | PEM → DER |
openssl x509 -in cert.der -inform DER -out cert.pem | DER → PEM |
openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.p12 | PEM → PKCS#12 |
openssl pkcs12 -in cert.p12 -out cert.pem -nodes | PKCS#12 → PEM |
ハッシュ・暗号化#
| コマンド | 説明 |
|---|
openssl dgst -sha256 file.txt | SHA-256 ハッシュを計算 |
openssl dgst -md5 file.txt | MD5 ハッシュを計算 |
openssl enc -aes-256-cbc -in plain.txt -out encrypted.bin | AES-256 で暗号化 |
openssl enc -d -aes-256-cbc -in encrypted.bin -out plain.txt | AES-256 で復号 |
openssl rand -hex 32 | ランダムな16進数文字列を生成 |
openssl rand -base64 32 | ランダムな Base64 文字列を生成 |