本文へスキップ
>_ITDITDセキュリティ対策プラットフォーム

用語辞典

OpenSSL とは — HTTPS を支える土台ライブラリと、その守り方

OpenSSL は、HTTPS(TLS/SSL)と暗号処理を担うオープンソースのライブラリです。多くのサーバーが Web サーバーや OS 経由で“知らないうちに”使っており、ひとつの脆弱性が世界中に波及します(Heartbleed がその例)。何者なのか、なぜ爆発半径が大きいのか、そしてEOL版を避け速やかに更新する守り方を、攻撃手順を伏せて解説します。

公開日 2026-06-29 更新日 2026-06-29 6分で読める

HTTPS で通信しているなら、あなたのサーバーはほぼ確実に OpenSSL(か、その互換実装)の上で動いています。直接は触らないのに影響は全員に及ぶ——その「土台ライブラリ」の正体と守り方を、防御目線で解説します。

どこにいる?——「継承して使う」土台

OpenSSL の難しさは、自分で選んだ覚えがないのに使っていることにあります。あなたのアプリは Web サーバーに TLS を任せ、Web サーバーは OpenSSL に暗号処理を任せ、その OpenSSL は OS が配っている——という入れ子構造です。

あなたのアプリ
↓ TLSを委譲
Web サーバー(Nginx / Apache)・言語ランタイム
↓ 暗号処理を委譲
OpenSSL(OSが配布)
OpenSSL は最下層の“土台”。上のどの層も、暗号処理をここに委ねている。だから1つの穴が全体に波及する。

この構造は普段はありがたい——暗号は専門家が書いた共通の実装に任せられます。ですが、その共通の土台に穴が空くと、上に乗っている全員が同時に影響を受ける。これが「土台ライブラリの脆弱性は爆発半径が大きい」という意味です。

なぜ怖いのか:1つのバグが世界中の鍵を脅かした

2014年の HeartbleedCVE-2014-0160)は、OpenSSL の小さな実装ミス(要求された長さを検証せずに信用した)が原因で、サーバーのメモリ——秘密鍵やセッション情報を含みうる領域——を外部から少しずつ読み出せてしまうものでした。OpenSSL が広く使われていたからこそ、世界中の膨大なサーバーが一斉に対象になりました(詳しくは → Heartbleed 事件)。

教訓は明快です。土台の依存ほど、影響範囲は広い。だから、アプリが直接 import している依存だけでなく、その下で動く OpenSSL のような基盤ライブラリも、同じ真剣さで監視・更新の対象に入れる必要があります。

守り方:EOL を避け、土台も監視する

1

自分の環境の OpenSSL を把握する

何が、どのバージョンを使っているかを知らなければ守れません。サーバー・コンテナのベースイメージ・言語ランタイムが、それぞれどの OpenSSL(系列・バージョン)に依存しているかを棚卸しします。

2

サポート終了(EOL)版を使わない

古い系列はサポートが終わると、新しい脆弱性が見つかっても修正が出ません。EOL のまま動かし続けるのは、穴が開いても塞がれない状態を放置することです。サポート中の系列へ計画的に上げます。

3

土台の依存も CVE 監視に含める

アプリの依存は osv-scanner などで追えますが、OS が配る OpenSSL のような基盤は見落としがち。基盤ライブラリの新規 CVE も拾える体制にします(→ CVE対応の実務)。

4

重大時は速やかに更新する

Heartbleed 級の重大脆弱性は、公表と同時に攻撃が始まります。土台の更新は「次の定期更新で」ではなく、影響度に応じて即日対応できるよう、更新手順を普段から軽くしておきます。

当サイトの視点:土台こそ機械で見張る

基盤ライブラリの脆弱性は、人間の「なんとなくの記憶」では追いきれません。当サイトは自分自身の依存・基盤も CVE の機械監視の対象にしています。あなたが Let's Encrypt で配っている証明書も、その通信の下では OpenSSL 系の実装が暗号処理をしています——“見えない土台”を一覧化して監視下に置くことが、爆発半径の大きい事故を防ぐ最短路です。

次に読む

よくある質問

QOpenSSL を自分でインストールした覚えがないのに、使っていることはありますか?
A

ほぼ確実に使っています。OpenSSL は、Web サーバー(Nginx/Apache)、OS、各言語のランタイムなどが内部で利用する“土台”のライブラリだからです。あなたが直接コードに書かなくても、HTTPS で通信している時点で OpenSSL(または互換の実装)が下で動いていることが多い。『自分は使っていない』という思い込みこそ、土台の脆弱性を見逃す原因になります。

QLibreSSL や BoringSSL とは何が違いますか?
A

どちらも OpenSSL から派生(フォーク)した実装です。LibreSSL は Heartbleed 後に OpenBSD プロジェクトがコードを整理して作ったもの、BoringSSL は Google が自社用途向けに作ったものです。一般の利用者が選び分ける必要はあまりなく、『自分のプラットフォームが採用している実装を、サポート中のバージョンで最新に保つ』ことの方がずっと重要です。

Qバージョンの確認や更新はどうすればいいですか?
A

多くの環境では `openssl version` で確認でき、更新は OS のパッケージ管理やコンテナのベースイメージ更新を通じて行います。肝心なのは、サポートが終了した系列(EOL)を使い続けないこと。EOL のライブラリには、新しい脆弱性が見つかっても修正が出ません。土台の依存も、アプリの依存と同じように継続的に追うのが安全です。