Linux openssl コマンド

Linux 命令大全Linux コマンド大全


OpenSSL は強力なオープンソースの暗号化ツールキットであり、さまざまな暗号化アルゴリズム、証明書管理機能、SSL/TLS プロトコルの実装を提供します。Linux システムで暗号化タスクを処理する事実上の標準ツールです。

OpenSSL の主な機能は次のとおりです:

  • SSL 証明書の作成と管理
  • ファイルの暗号化/復号
  • 鍵ペアの生成
  • SSL 接続のテスト
  • ハッシュ値の計算
  • デジタル署名の検証

基本構文

openssl コマンドの基本構文は次のとおりです:

openssl command [command_options] [command_args]

ここで:

  • command:実行する OpenSSL サブコマンド(genrsa、req、x509 など)
  • command_options:サブコマンドのオプションパラメータ
  • command_args:サブコマンドの引数

よく使うサブコマンドと例

1. RSA 鍵ペアの生成

2048 ビットの RSA 秘密鍵を生成:

openssl genrsa -out private.key 2048

秘密鍵から公開鍵を抽出:

openssl rsa -in private.key -pubout -out public.key

パラメータの説明:

  • -out:出力ファイルを指定
  • 2048:鍵の長さ(ビット)
  • -pubout:公開鍵を出力

2. 自己署名証明書の作成

CSR(証明書署名要求)を生成:

openssl req -new -key private.key -out cert.csr

自己署名証明書を生成(有効期限365日):

openssl req -x509 -new -key private.key -days 365 -out cert.crt

パラメータの説明:

  • -new:新しい要求を作成
  • -key:秘密鍵ファイルを指定
  • -days:証明書の有効期限(日数)
  • -x509:X.509 形式の証明書を出力

3. ファイルの暗号化と復号

AES-256-CBC でファイルを暗号化:

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc

ファイルを復号:

openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt

パラメータの説明:

  • -aes-256-cbc:AES-256-CBC アルゴリズムを使用
  • -salt:ランダムなソルトを追加して安全性を強化
  • -in:入力ファイル
  • -out:出力ファイル
  • -d:復号モード

4. ファイルのハッシュ値の計算

SHA-256 ハッシュを計算:

openssl dgst -sha256 filename.txt

MD5 ハッシュを計算:

openssl dgst -md5 filename.txt

5. SSL 接続のテスト

リモートサーバーの SSL 証明書をテスト:

openssl s_client -connect example.com:443 -showcerts

パラメータの説明:

  • -connect:ホストとポートを指定
  • -showcerts:サーバーの証明書チェーンを表示

上級の使い方

1. PKCS#12 形式の証明書の作成

証明書と秘密鍵を PKCS#12 ファイルにパッケージ化:

openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.p12

2. 証明書情報の表示

証明書の詳細情報を表示:

openssl x509 -in cert.crt -text -noout

3. 証明書チェーンの検証

証明書チェーンの整合性を検証:

openssl verify -CAfile ca.crt cert.crt

セキュリティ上の注意事項

  1. 鍵の保護:秘密鍵ファイルには適切な権限(例:600)を設定し、漏洩を防ぐ
  2. アルゴリズムの選択:安全でないアルゴリズム(MD5、SHA1 など)の使用を避ける
  3. パスワードの強度:暗号化時は強力なパスワードを使用する
  4. 証明書の有効期限:期限切れの証明書を定期的に更新する
  5. 乱数生成:システムに暗号化操作のための十分なエントロピーがあることを確認する

よくある質問と回答

Q1: OpenSSL のバージョンを確認するには?

openssl version

Q2: より安全な ECC 鍵を生成するには?

openssl ecparam -genkey -name secp384r1 -out ecc.key

Q3: 証明書の形式を変換するには?

PEM から DER へ変換:

openssl x509 -in cert.pem -outform der -out cert.der

実践演習

  1. 4096 ビットの RSA 鍵ペアを生成する
  2. 有効期限が 2 年の自己署名証明書を作成する
  3. テキストファイルを暗号化し、同じパスワードで復号する
  4. よく使うウェブサイトの SSL 証明書情報を確認する

openssl コマンドを習得することで、さまざまな暗号化およびセキュリティ関連のタスクを処理でき、システムのセキュリティと管理業務の強固な基盤を築くことができます。


Linux 命令大全Linux コマンド大全

その他の拡張