openssl コマンドは、SSL/TLS 通信や証明書、暗号化・復号、ハッシュ計算などを行うためのコマンドラインツールです。
鍵や証明書の生成、HTTPS 通信の確認、暗号アルゴリズムの利用など幅広い用途で使われます。
構文(Syntax)
openssl <コマンド> [オプション]
主なサブコマンド一覧
| サブコマンド | 説明 | 使用例 |
|---|---|---|
genrsa | RSA 秘密鍵を生成 | openssl genrsa -out private.pem 2048 |
req | CSR(証明書署名要求)の作成、自己署名証明書の生成 | openssl req -new -key private.pem -out server.csr |
x509 | 証明書を操作(表示、変換、自己署名など) | openssl x509 -in cert.pem -text -noout |
rsa | RSA 鍵を表示・変換 | openssl rsa -in private.pem -pubout -out public.pem |
pkcs12 | PKCS#12 ファイルを操作(証明書+秘密鍵のパッケージ) | openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.p12 |
enc | ファイルを暗号化・復号 | openssl enc -aes-256-cbc -in plain.txt -out enc.txt |
dgst | ダイジェスト(ハッシュ)計算 | openssl dgst -sha256 file.txt |
s_client | SSL/TLS サーバーへ接続して確認 | openssl s_client -connect example.com:443 |
rand | 疑似乱数を生成 | openssl rand -hex 16 |
実行例
RSA 秘密鍵を生成
openssl genrsa -out private.pem 2048
公開鍵を抽出
openssl rsa -in private.pem -pubout -out public.pem
CSR を作成
openssl req -new -key private.pem -out server.csr
自己署名証明書を生成
openssl req -x509 -new -key private.pem -days 365 -out cert.pem
証明書の内容を表示
openssl x509 -in cert.pem -text -noout
ファイルを暗号化
openssl enc -aes-256-cbc -in secret.txt -out secret.enc
ファイルを復号
openssl enc -d -aes-256-cbc -in secret.enc -out secret.txt
SHA256 ハッシュを計算
openssl dgst -sha256 file.txt
出力例:
SHA256(file.txt)= 9a0364b9e99bb480dd25e1f0284c8555...
HTTPS サーバーへ接続して証明書確認
openssl s_client -connect example.com:443
16バイトの乱数を生成
openssl rand -hex 16
出力例:
a3f9c2b1d49e6a0f4b77e1c2d9f3a8b2
エラー例(存在しない証明書を指定)
openssl x509 -in notfound.pem -text
出力例:
unable to load certificate
140735202050112:error:02001002:system library:fopen:No such file or directory:...
関連コマンド
ssh-keygen: SSH 鍵の生成ツール。keytool: Java 用の鍵と証明書管理ツール。gpg: OpenPGP による暗号化・署名ツール。
備考
- OpenSSL は多くの Linux ディストリビューションや Web サーバー(Apache、Nginx)で利用される標準ライブラリ。
opensslCLI は学習やテスト用途に便利ですが、本番環境ではセキュリティベストプラクティスに従って利用する必要があります。- 鍵や証明書を扱う場合は 権限管理に注意。秘密鍵 (
.pem) は600権限に設定するのが推奨です。
参考
- OpenSSL公式: https://www.openssl.org/
- manページ: https://man7.org/linux/man-pages/man1/openssl.1.html

コメント