メニューSSL証明書 - メニュー
【SSL証明書】FAQ/情報

OpenSSLとは?インストール・基本コマンドから証明書管理まで完全ガイド

ページ更新日:2026/05/12

OpenSSLは、SSL/TLS通信や証明書管理に使うオープンソースの暗号ライブラリおよびコマンドラインツールです。
Webサーバーの設定、CSR(証明書署名要求)の作成、証明書の確認・変換、TLS接続のデバッグなど、SSL証明書を扱うエンジニアにとって必須のツールです。
本ページでは、OpenSSLの概要からインストール方法、実務でよく使うコマンドまでを体系的に解説します。

OpenSSLとは

OpenSSLは、TLS(Transport Layer Security)・SSL(Secure Sockets Layer)プロトコルと、様々な暗号アルゴリズムを実装したオープンソースのライブラリです。
1998年に SSLeay をベースに開発が始まり、現在はほぼすべての Linux ディストリビューションと macOS に標準搭載されています。

項目 内容
ライセンス Apache License 2.0(OpenSSL 3.x以降)
主な用途 CSR/秘密鍵の生成、証明書の確認・変換、TLS接続テスト、暗号化・復号化
対応OS Linux、macOS(標準搭載)、Windows(公式バイナリまたはWSL)
最新安定版 OpenSSL 3.5(LTS・推奨)/ 4.0(2026年4月リリース)/ 1.1.1系はサポート終了(2023年9月)

OpenSSLのバージョン変遷と互換性

OpenSSL は長年にわたってメジャーアップデートが行われており、バージョンによって動作やオプションが異なります。
特に 1.x 系から 3.x 系への移行では非互換な変更が多く、既存スクリプトの修正が必要になる場合があります。

バージョン リリース/EOL 主な変更点・特記事項
1.0.2 EOL: 2019-12 旧来の標準。現在は非推奨。TLS 1.3 非対応。
1.1.1 EOL: 2023-09 TLS 1.3 対応を追加。長期サポート版。EOL済みのためアップグレード推奨。
3.0 LTS: 2026-09まで ライセンスが Apache 2.0 に変更。Provider アーキテクチャ導入。多くの API が非推奨化。
3.1 / 3.2 EOL済み 3.2 で QUIC API 追加(HTTP/3 対応ライブラリ向け)。
3.3 / 3.4 3.4: 2026-10-22 まで 3.3 は EOL 済み。3.4 は 2026年10月22日までサポート継続。
3.5 LTS: 2030-04-08 まで 現在の推奨バージョン。 2025年4月8日リリース。長期サポート(LTS)。安定運用環境に最適。
4.0 2027-04 まで 2026年4月リリース。新しい API デザインを採用。本番導入は 3.5 LTS が安全。

1.x → 3.x の主な非互換変更

バージョン確認・インストール

バージョン確認

openssl version
openssl version -a  # 詳細情報(ビルドオプション含む)

インストール方法(OS別)

OS コマンド・方法
Ubuntu / Debian sudo apt-get install openssl
RHEL / CentOS / Rocky sudo yum install openssl または sudo dnf install openssl
macOS 標準搭載(LibreSSL互換)。最新版は brew install openssl
Windows WSL(Windows Subsystem for Linux)を使うか、Win32/Win64 OpenSSL をインストール

※ macOS の標準 OpenSSL は LibreSSL ベースのため、一部オプションの挙動が異なります。Homebrew 版の openssl を使う場合はパスに注意してください(/opt/homebrew/opt/openssl/bin/openssl 等)。

CSR・秘密鍵の生成

SSL証明書の申し込みには CSR(Certificate Signing Request:証明書署名要求)が必要です。
OpenSSL で秘密鍵と CSR を同時に生成するのが最も一般的な方法です。

RSA 2048ビット鍵でCSRと秘密鍵を同時生成

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

RSA 4096ビット鍵で生成(より高いセキュリティ)

openssl req -new -newkey rsa:4096 -nodes -keyout server.key -out server.csr

既存の秘密鍵からCSRを生成

openssl req -new -key server.key -out server.csr

生成したCSRの内容を確認

openssl req -text -noout -in server.csr
CSRが作成できたら、そのままSSL証明書を申し込めます
SSL証明書 一覧・価格DV証明書の比較(RapidSSL・QuickSSL Premium・Thawte SSL123)ワイルドカード証明書とは?| 【ツール】CSR作成ツール

ECDSA鍵とCSR作成(楕円曲線暗号)

RSA と並んで近年普及しているのが ECDSA(楕円曲線デジタル署名アルゴリズム)です。
RSA 2048bit と同等以上のセキュリティを、より短い鍵長で実現できるため、TLS ハンドシェイクの高速化やサーバー負荷軽減に効果的です。

種類 鍵長 セキュリティ強度・用途
RSA 2048bit / 4096bit 最も広く使われる。互換性が高い。古いシステムでも動作。
ECDSA P-256 256bit RSA 3072bit 相当のセキュリティ。高速・軽量。モダンブラウザ/サーバーで広くサポート。
ECDSA P-384 384bit RSA 7680bit 相当。より高いセキュリティが必要な場合(政府・金融等)。

P-256(prime256v1)で ECDSA 秘密鍵を生成

openssl ecparam -genkey -name prime256v1 -noout -out ec.key

P-384(secp384r1)で ECDSA 秘密鍵を生成

openssl ecparam -genkey -name secp384r1 -noout -out ec384.key

ECDSA 秘密鍵からCSRを生成

openssl req -new -key ec.key -out ec.csr

ECDSA 秘密鍵と CSR を一括生成(OpenSSL 3.x 推奨)

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes -keyout ec.key -out ec.csr

※ DigiCert(当社取扱いの RapidSSL・GeoTrust・Thawte 等)は ECDSA 証明書の発行に対応しています。
※ 古いWebサーバーや一部のロードバランサーでは ECDSA 非対応の場合があります。導入前に動作環境を確認してください。

証明書の確認・有効期限チェック

証明書の内容を表示(Subject・発行者・有効期限など)

openssl x509 -text -noout -in server.crt

有効期限だけを表示

openssl x509 -enddate -noout -in server.crt

サーバーに接続してリモートで有効期限を確認

echo | openssl s_client -connect www.example.com:443 -servername www.example.com 2>/dev/null | openssl x509 -enddate -noout

-servername は SNI(複数ドメインを同一 IP で運用している環境)で正しい証明書を取得するために必要です。

証明書チェーン(中間CA証明書含む)を確認

openssl s_client -connect www.example.com:443 -servername www.example.com -showcerts 2>/dev/null

サーバーへの接続テスト(s_client)

openssl s_client は TLS 接続をデバッグするための強力なツールです。
サーバーの TLS バージョン・暗号スイート・証明書チェーンを確認できます。

基本的な TLS 接続テスト

openssl s_client -connect www.example.com:443 -servername www.example.com

SNI 対応サーバーでは -servername を省くとデフォルト証明書(別ドメインの可能性あり)が返されることがあります。必ず付けることを推奨します。

TLS バージョンを指定して接続テスト

# TLS 1.3 のみ許可するか確認
openssl s_client -connect www.example.com:443 -servername www.example.com -tls1_3

# TLS 1.2 で接続
openssl s_client -connect www.example.com:443 -servername www.example.com -tls1_2

OCSP Stapling の確認

openssl s_client -connect www.example.com:443 -servername www.example.com -status 2>/dev/null | grep "OCSP"

SNI(Server Name Indication)を指定して接続

openssl s_client -connect 203.0.113.1:443 -servername www.example.com

複数ドメインを1つの IP で運用(SNI)している環境で特定ドメインの証明書を確認する場合に使用します。

有効期限・中間証明書・HSTS・OCSP をまとめて自動確認
【ツール】SSL証明書インストールチェッカー(ドメイン名を入力するだけで一括診断)

PFX(PKCS#12)形式への変換

IIS や Azure などでは PFX(.pfx / .p12)形式の証明書が必要です。OpenSSL で変換できます。

証明書・秘密鍵・中間証明書を PFX にまとめる

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile intermediate.crt

PFX から証明書・秘密鍵を取り出す

# 証明書を取り出す
openssl pkcs12 -in server.pfx -nokeys -out server.crt

# 秘密鍵を取り出す
openssl pkcs12 -in server.pfx -nocerts -nodes -out server.key

OpenSSL 3.x では -legacy オプションが必要な場合があります(古い PFX ファイルを扱う場合)。

IIS・Windows Server への PFX インポートはこちら
IIS(Windows Server)へのSSL証明書インストール手順PFX/P12から証明書・秘密鍵を取り出す方法

秘密鍵と証明書の照合

サーバーにインストールする際、秘密鍵と証明書が対応しているかを事前確認することで、設定ミスを防げます。

# 秘密鍵の MD5
openssl rsa -modulus -noout -in server.key | openssl md5

# CSR の MD5
openssl req -modulus -noout -in server.csr | openssl md5

# 証明書の MD5
openssl x509 -modulus -noout -in server.crt | openssl md5

3つのハッシュ値が一致していれば、秘密鍵・CSR・証明書はセットです。一致しない場合は異なる秘密鍵で生成された証明書です。

証明書チェーンの検証(openssl verify)

インストール前に証明書・中間CA証明書・秘密鍵が正しくそろっているか、openssl verify で確認できます。

ルート証明書まで含めたチェーン検証

# 中間証明書 + ルート証明書を1ファイルにまとめた bundle で検証
openssl verify -CAfile bundle.pem server.crt

出力が server.crt: OK であれば証明書チェーンは正常です。

中間証明書を個別に指定して検証

openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt

サーバー証明書の Subject / Issuer を確認

# サーバー証明書(先頭の1枚)の Subject と Issuer を表示
openssl s_client -connect www.example.com:443 -servername www.example.com 2>/dev/null | \
  openssl x509 -noout -subject -issuer

※ パイプ後の openssl x509 は先頭の証明書(サーバー証明書)だけを処理します。
チェーン全体(中間証明書含む)を確認するには -showcerts オプションで出力された PEM ブロックを個別に処理してください。

OCSP で証明書の失効状態を確認

# OCSP URL を証明書から取得
OCSP_URL=$(openssl x509 -noout -ocsp_uri -in server.crt)

# OCSP 応答で失効確認
openssl ocsp -issuer intermediate.crt -cert server.crt -url "$OCSP_URL" -resp_text

出力に good と表示されれば失効していません。revoked の場合は失効済みです。

よく使うオプション早見表

コマンド・オプション 用途
openssl version インストール済みの OpenSSL バージョン確認
openssl req -new ... CSR・秘密鍵の生成
openssl x509 -text -noout 証明書の内容・有効期限確認
openssl s_client -connect サーバーへの TLS 接続テスト・証明書チェーン確認
openssl pkcs12 -export PFX(PKCS#12)ファイルへの変換
openssl rsa -modulus | openssl md5 秘密鍵と証明書の照合
openssl x509 -enddate -noout 証明書の有効期限のみ表示

関連ページ:
OpenSSLコマンド集(CSR生成・証明書確認・有効期限チェック一覧)
OpenSSLでCSR作成(手順詳細)
opensslでpfxファイル作成(IIS向け)
CSR(証明書署名要求)とは?
NginxのHSTSとTLS設定強化(SSL Labs A+)

↑ 上へ 注文 検索