OpenSSLとは
普段インターネットを通信する場合、データのやりとりが必要ですが、このデータのやりとりを行う際に必要となるのが通信機器です。この通信機器はそれぞれ利用するプロトコルが異なります。
プロトコルにはいくつか種類があり、その1つがOpenSSLです。OpenSSLはOpenSSL財団が公開しており、公式サイトから誰でも利用することができます。
本記事では、OpenSSLの特徴や使い方、コマンドなどを紹介します。この機会に、OpenSSLについてしっかり理解を深めましょう。
【参考】:OpenSSL 公式サイト
OpenSSLでできること
このOpenSSLを利用すると、コマンドを利用して証明書や秘密鍵の作成ができます。さらに、OpenSSLを使用してTLSのテストを実行することができます。
【参考】:OpenSSLについて
OpenSSLの仕組み
OpenSSLは、SSL/TLS通信を行うことができるオープンソースのライブラリです。SSL/TLS通信はデータを暗号化通信を行ってくれるため、安全な通信を行うために必要です。
そんなOpenSSLの仕組みですが、例えばOpenSSL証明書の作成をする際は、ユーザがOpenSSLコマンドを入力すると証明書を作成します。
一方で、TLS通信を使いたい時は、OpenSSLのライブラリはApacheなどのサービスを通してライブラリを利用します。
OpenSSLの脆弱性について
OpenSSLは、以前に脆弱性が発見されたことがあり、古いバージョンのOpenSSLを使用していると、Dos攻撃などセキュリティへの影響を受ける可能性があります。そのため、すでに古いバージョンのOpenSSLを利用している場合は、セキュリティの観点からも新しいバージョンにアップしましょう。
OpenSSLの公式サイトでは、脆弱性が発見されると情報が発表されます。OpenSSLを利用する際は、定期的に脆弱性について情報が公表されていないか確認しましょう。
【参考】:OpenSSLの脆弱性
OpenSSLの使い方
ここからは、OpenSSLの使い方を詳しく解説します。まず基礎知識として、対応しているOSの紹介をした後で、具体的なOpenSSLの構築方法を説明します。
ちなみに、本記事でご紹介する構築方法はmacOSでの構築方法です。OpenSSLの構築方法が分からない方は、ぜひ参考にしてください。
【参考】:OpenSSLの構築
対応しているOSは数多くある
OpenSSLが対応しているOSは、Unix系のOSとWindows、OpenVMSなどがあります。Unix系のOSでは、macOSやLinuxも利用できます。
ちなみに、Unixプラットフォームを利用している場合、すでにOpenSSLがインストールされていることがあります。
【参考】:OpenSSLについて
OpenSSLのインストール方法
ここからは、OpenSSLの構築方法を紹介します。ここで注意したいのが、OpenSSLのバージョンです。OpenSSLは何度かバージョンアップを行なっており、パソコンを購入してからしばらく経つのであれば、バージョンが古いままになっているかもしれません。
バージョンが古いとサポートしていないSSLがある可能性があるため、新しいバージョンをダウンロードすることを推奨します。ちなみに、OpenSSL 1.1.1というバージョンは、2023年9月11日でサポートが終了します。
このバージョンを利用している方は、バージョンを更新しましょう。バージョン情報については公式サイトを参照してください。
【参考】:OpenSSLの構築 【参考】:OpenSSL OpenSSL 1.1.1のサポート終了について 【参考】:OpenSSLのバージョンについて
Homebrewのインストール
今回、OpenSSLをインストールするためにHomebrewというパッケージ管理ツールを使用します。Homebrewをまだインストールしたことがない方は、公式サイトからHomebrewをインストールしましょう。Homebrewをすでにインストールしている方は、こちらの手順は飛ばして構いません。
Homebrewのインストール方法は簡単で、ターミナルを起動して、以下のコマンドを実行するとインストールできます。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
不明点がある場合や、さらにHomebrewについて詳しく知りたい場合は、公式サイトを確認してください。
【参考】:Homebrew
バージョンの確認
次にバージョンの確認をします。ターミナルやコマンドに、下記のコマンドを実行しましょう。
$ openssl version
上記コマンドを実行した際、macOSの場合はLibreSSLというものが入ってることがあります。ちなみにLibreSSLとは、OpenSSLからフォークされたものです。以前OpenSSLで脆弱性が発見された際に、その脆弱性対策を施したものだと考えてください。
LibreSSLはOpenSSLと互換性を保っていますが、今回は最新のOpenSSLをインストールします。自分のパソコンにどのバージョンがあるか確認をして、古いバージョンがあれば、再度OpenSSLの最新版をインストールしましょう。
【参考】:LibreSSL公式
OpenSSLをインストールする
では、Homebrewを使ってOpenSSLをインストールしてみましょう。コマンドは以下の通りです。
brew install openssl@3.0
実行すると、下図のようにインストールが開始します。また、OpenSSLの最新バージョンが更新される可能性がありますので、インストールをする際はOpenSSLのサイトを確認しましょう。
【参考】:Homebrew OpenSSLのインストール 【参考】:OpenSSL OpenSSLの構築
OpenSSLをインストールできたか確認する
次に、OpenSSLの情報を確認して表示されるか確認しましょう。下図ではコマンドの後ろにパスがついていますが、「brew info openssl 」のみで実行できます。
brew info openssl
その後、以下コマンドを実行してOpenSSLのバージョンが表示されれば作業は完了です。
openssl version
ただし、すでにLibreSSLがある方は、下記コマンドを実行してもOpenSSLのバージョンではなく、LibreSSLを参照してしまう可能性があります。
その場合は、OpenSSLを優先するようにパスを上書きしましょう。コマンドは以下の通りです。
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
その後、1度開いているターミナルなどを終了し、再度起動して以下のコマンドを実行します。
openssl version
これで、バージョンが表示されればインストール作業は完了です。
OpenSSLのコマンド一覧を確認する方法
OpenSSLでは、さまざまなコマンドラインを提供しています。例えば、PKI操作やTLSテストのサポートなどを行うことができます。
さらに、利用可能なコマンドを調べたい場合は、以下のコマンドを利用しましょう。
openssl help
上記のコマンドを打つと、利用できるコマンドの一覧が表示できます。さらに、ユーティリティに関する情報を取得したい場合は、「man」の後に調べたいコマンドを続けて入力します。
下図は、ユーティリティの情報を取得した画像です。ぜひ参考にしてください。
【参考】:OpenSSL コマンドを調べる
OpenSSLの仕組みを通して通信について学ぼう
本記事ではOpenSSLの概要や、仕組みについて説明しました。OpenSSLは暗号化通信をするために必要なものであり、暗号化をしてないとデータの漏洩や改ざんをされる可能性があります。
本記事を参考にしつつOpenSSLの仕組みを学び、安全な通信ができるようにしましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから