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:443SSL/TLS 接続して証明書を確認
openssl s_client -connect host:443 -showcerts証明書チェーン全体を表示
openssl s_client -connect host:443 -tls1_2TLS バージョンを指定して接続

秘密鍵(RSA)

コマンド説明
openssl genrsa -out key.pem 2048RSA 秘密鍵を生成(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.pemP-256 秘密鍵を生成
openssl ecparam -name secp384r1 -genkey -noout -out key.pemP-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.csrCSR を生成
openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out req.csr鍵と CSR を同時生成
openssl req -in req.csr -text -nooutCSR の内容を確認

自己署名証明書

コマンド説明
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 365CSR から自己署名証明書を発行

フォーマット変換

コマンド説明
openssl x509 -in cert.pem -out cert.der -outform DERPEM → DER
openssl x509 -in cert.der -inform DER -out cert.pemDER → PEM
openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.p12PEM → PKCS#12
openssl pkcs12 -in cert.p12 -out cert.pem -nodesPKCS#12 → PEM

ハッシュ・暗号化

コマンド説明
openssl dgst -sha256 file.txtSHA-256 ハッシュを計算
openssl dgst -md5 file.txtMD5 ハッシュを計算
openssl enc -aes-256-cbc -in plain.txt -out encrypted.binAES-256 で暗号化
openssl enc -d -aes-256-cbc -in encrypted.bin -out plain.txtAES-256 で復号
openssl rand -hex 32ランダムな16進数文字列を生成
openssl rand -base64 32ランダムな Base64 文字列を生成