OpenSSLとは?言葉の意味から使い方、コマンド一覧まで解説
thumb_openssl_01
OpenSSLとは?言葉の意味から使い方、コマンド一覧まで解説
アンドエンジニア編集部
2024.01.15
この記事でわかること
OpenSSLとはプロトコルの1つで、暗号化通信を行う際に使うオープンソースのライブラリです
OpenSSLは、暗号化通信をしたり証明書の作成をしたりできます
OpenSSLの仕組みと、インストール方法が分かります

OpenSSLとは

img_openssl_01

普段インターネットを通信する場合、データのやりとりが必要ですが、このデータのやりとりを行う際に必要となるのが通信機器です。この通信機器はそれぞれ利用するプロトコルが異なります。

プロトコルにはいくつか種類があり、その1つがOpenSSLです。OpenSSLはOpenSSL財団が公開しており、公式サイトから誰でも利用することができます。

本記事では、OpenSSLの特徴や使い方、コマンドなどを紹介します。この機会に、OpenSSLについてしっかり理解を深めましょう。

【参考】:OpenSSL 公式サイト

OpenSSLでできること

このOpenSSLを利用すると、コマンドを利用して証明書や秘密鍵の作成ができます。さらに、OpenSSLを使用してTLSのテストを実行することができます。

【参考】:OpenSSLについて

OpenSSLの仕組み

OpenSSLは、SSL/TLS通信を行うことができるオープンソースのライブラリです。SSL/TLS通信はデータを暗号化通信を行ってくれるため、安全な通信を行うために必要です。

そんなOpenSSLの仕組みですが、例えばOpenSSL証明書の作成をする際は、ユーザがOpenSSLコマンドを入力すると証明書を作成します。

一方で、TLS通信を使いたい時は、OpenSSLのライブラリはApacheなどのサービスを通してライブラリを利用します。

WebサーバーのApacheとは?Webサーバーを学ぶエンジニア必見!

OpenSSLの脆弱性について

OpenSSLは、以前に脆弱性が発見されたことがあり、古いバージョンのOpenSSLを使用していると、Dos攻撃などセキュリティへの影響を受ける可能性があります。そのため、すでに古いバージョンのOpenSSLを利用している場合は、セキュリティの観点からも新しいバージョンにアップしましょう。

OpenSSLの公式サイトでは、脆弱性が発見されると情報が発表されます。OpenSSLを利用する際は、定期的に脆弱性について情報が公表されていないか確認しましょう。

【参考】:OpenSSLの脆弱性

OpenSSLの使い方

img_openssl_02

ここからは、OpenSSLの使い方を詳しく解説します。まず基礎知識として、対応しているOSの紹介をした後で、具体的なOpenSSLの構築方法を説明します。

ちなみに、本記事でご紹介する構築方法はmacOSでの構築方法です。OpenSSLの構築方法が分からない方は、ぜひ参考にしてください。

【参考】:OpenSSLの構築

対応しているOSは数多くある

OpenSSLが対応しているOSは、Unix系のOSとWindows、OpenVMSなどがあります。Unix系のOSでは、macOSやLinuxも利用できます。

ちなみに、Unixプラットフォームを利用している場合、すでにOpenSSLがインストールされていることがあります。

【参考】:OpenSSLについて

Linuxとは?特徴やメリット・ディストリビューションを解説!
WindowsとLinuxの違いは?具体的な比較ポイントを解説!

OpenSSLのインストール方法

img_openssl_03

ここからは、OpenSSLの構築方法を紹介します。ここで注意したいのが、OpenSSLのバージョンです。OpenSSLは何度かバージョンアップを行なっており、パソコンを購入してからしばらく経つのであれば、バージョンが古いままになっているかもしれません。

バージョンが古いとサポートしていないSSLがある可能性があるため、新しいバージョンをダウンロードすることを推奨します。ちなみに、OpenSSL 1.1.1というバージョンは、2023年9月11日でサポートが終了します。

このバージョンを利用している方は、バージョンを更新しましょう。バージョン情報については公式サイトを参照してください。

【参考】:OpenSSLの構築 【参考】:OpenSSL OpenSSL 1.1.1のサポート終了について 【参考】:OpenSSLのバージョンについて

Homebrewのインストール

今回、OpenSSLをインストールするためにHomebrewというパッケージ管理ツールを使用します。Homebrewをまだインストールしたことがない方は、公式サイトからHomebrewをインストールしましょう。Homebrewをすでにインストールしている方は、こちらの手順は飛ばして構いません。

img_openssl_04
【図】:Homebrewの公式サイトの画面

Homebrewのインストール方法は簡単で、ターミナルを起動して、以下のコマンドを実行するとインストールできます。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

 

不明点がある場合や、さらにHomebrewについて詳しく知りたい場合は、公式サイトを確認してください。

【参考】:Homebrew

Homebrewのインストール方法は?よくあるエラーも解説!

バージョンの確認

次にバージョンの確認をします。ターミナルやコマンドに、下記のコマンドを実行しましょう。

$ openssl version

 

img_openssl_05
【図】:OpenSSLのバージョン確認コマンドを実行

上記コマンドを実行した際、macOSの場合はLibreSSLというものが入ってることがあります。ちなみにLibreSSLとは、OpenSSLからフォークされたものです。以前OpenSSLで脆弱性が発見された際に、その脆弱性対策を施したものだと考えてください。

LibreSSLはOpenSSLと互換性を保っていますが、今回は最新のOpenSSLをインストールします。自分のパソコンにどのバージョンがあるか確認をして、古いバージョンがあれば、再度OpenSSLの最新版をインストールしましょう。

【参考】:LibreSSL公式

OpenSSLをインストールする

では、Homebrewを使ってOpenSSLをインストールしてみましょう。コマンドは以下の通りです。

brew install openssl@3.0

 

実行すると、下図のようにインストールが開始します。また、OpenSSLの最新バージョンが更新される可能性がありますので、インストールをする際はOpenSSLのサイトを確認しましょう。

img_openssl_06
【図】:Homebrewを使用してインストールコマンドを実行

【参考】: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

 

img_openssl_07
【図】:バージョン確認コマンドを実行する

これで、バージョンが表示されればインストール作業は完了です。

OpenSSLのコマンド一覧を確認する方法

img_openssl_08

OpenSSLでは、さまざまなコマンドラインを提供しています。例えば、PKI操作やTLSテストのサポートなどを行うことができます。

さらに、利用可能なコマンドを調べたい場合は、以下のコマンドを利用しましょう。

openssl help

 

img_openssl_09
【図】:コマンドラインの一覧を表示する

上記のコマンドを打つと、利用できるコマンドの一覧が表示できます。さらに、ユーティリティに関する情報を取得したい場合は、「man」の後に調べたいコマンドを続けて入力します。

下図は、ユーティリティの情報を取得した画像です。ぜひ参考にしてください。

img_openssl_10
【図】:ユーティリティの情報を取得する

【参考】:OpenSSL コマンドを調べる

OpenSSLの仕組みを通して通信について学ぼう

img_openssl_11

本記事ではOpenSSLの概要や、仕組みについて説明しました。OpenSSLは暗号化通信をするために必要なものであり、暗号化をしてないとデータの漏洩や改ざんをされる可能性があります。

本記事を参考にしつつOpenSSLの仕組みを学び、安全な通信ができるようにしましょう。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT