【Windows 10/11】WindowsにOpenSSL Ver.3をインストールして証明書を取り扱うTech TIPS

電子証明書やSSL/TLSのための標準的なツールキット「OpenSSL Ver.3(バージョン3)」。しかしWindows OSには標準でインストールされていない。Windows OSでOpenSSL Ver.3を利用するのに必要なインストール手順と注意点を解説する。

» 2024年06月19日 05時00分 公開
[島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

OpenSSL Ver.3をWindows OSで使う

対象:OpenSSL Ver.3、Windows 10/Windows 11


 SSL/TLS対応のWebサイトを構築したり、セキュアな通信路を必要とするアプリケーションをセットアップしたりする場合、「電子証明書」(以下、単に「証明書」)を取り扱う機会がよくある。

 対象プラットフォームがUNIX/Linux系の場合、証明書に関する作業手順の多くは「OpenSSL」を用いた方法で説明されている。OpenSSLとはSSL/TLSのツールキットおよび暗号化ライブラリのデファクトスタンダードで、UNIX/Linux系で多用されている。

 Windows OSにも証明書を取り扱うためのコマンドや役割/機能は備わっている。しかし、OpenSSLとは使い方が全く異なるため、例えばOpenSSL向けの作業手順書しかない状況では役に立たない。

 そのような場合のために、本Tech TIPSではWindows OS上でOpenSSLを使えるようにする方法を幾つか紹介する。環境や用途、制限に応じて最適なOpenSSLセットアップ手段を選んでいただきたい。

 OpenSSLは「Ver.3」(バージョン3.0以降)を、またWindows OSは64bit(x64)版をそれぞれ対象とする。32bit Windows OSについては、プログラムのパスである[C:\Program Files]から[C:\Program Files (x86)]に読み替えていただきたい。

方法その1――WSLに含まれるOpenSSLを利用する

 Windows Subsystem for Linux(WSL)がインストール済みなら、その中にOpenSSLも組み込まれているはずだ。OpenSSLはさまざまなツールやユーティリティで用いられているため、多くのディストリビューションではデフォルトでインストールされる。

 WSLについては、これから始めるWSL「Windows 10/11でLinux環境『WSL』を始める第一歩」を参照していただきたい。

 WSLを起動したら、「openssl version」と実行してみよう。インストール済みのOpenSSLのバージョンが表示されるはずだ。

WSL上でOpenSSLを実行する WSL上でOpenSSLを実行する

●コマンドプロンプトからWSL内のOpenSSLを直接呼び出すには

 いちいちWSLのウィンドウを開かなくても、コマンドプロンプトから以下のようにコマンドラインを入力して実行すれば、WSL内のOpenSSLを呼び出せる。

wsl openssl <OpenSSLのコマンドラインオプション>



コマンドプロンプトからWSL内のOpenSSLを直接呼び出す コマンドプロンプトからWSL内のOpenSSLを直接呼び出す

●WSLだと最新版のOpenSSLは使えない!?

 WSLの場合、OpenSSLのバージョンは、インストールしたディストリビューションのパッケージリポジトリに依存する。執筆時点ではLTS(長期サポート)の対象であるVer.3.0が標準のリポジトリに登録されていて、それがインストールされていることが多いようだ。

 最新バージョン(執筆時点ではVer.3.3)を利用したければ、そのバージョンのパッケージを別のリポジトリなどで見つけてインストールするか、ソースコードからコンパイルする必要がある。

方法その2――Git for Windowsに同梱のOpenSSLを利用する

 開発の仕事に携わっていれば、「Git for Windows」(以下、「Git」と略)がインストール済みであることも多いだろう。

 その場合、Gitと一緒にOpenSSLもインストールされている。Git Bashを起動すると、以下の画面のようにそのままOpenSSLが使えるはずだ。

Git for Windowsに含まれているOpenSSLを利用する Git for Windowsに含まれているOpenSSLを利用する

●Git版OpenSSLをコマンドプロンプトから直接呼び出すには

 Gitに含まれるOpenSSL(openssl.exe)は、デフォルトで「C:\Program Files\Git\usr\bin」に格納されている。このフォルダのパスをPATH環境変数に加えると、コマンドプロンプトからでもGit版OpenSSLが呼び出せるようになる(PATH環境変数にパスを加える手順は後述)。

PATH環境変数にGit版OpenSSLのパスを加えればコマンドプロンプトから呼び出せるようになる PATH環境変数にGit版OpenSSLのパスを加えればコマンドプロンプトから呼び出せるようになる

方法その3――wingetでOpenSSLをインストールする

 Windows OS標準のパッケージマネージャ「winget」が利用できるなら、前述のWSLやGitなどを必要としないWindows OS版OpenSSのインストールが簡単にできる。

 wingetの基本については、Windows 10 The Latest「アプリのインストールや更新をコマンドでサクっと実行『winget』の使い方」を参照していただきたい。

 wingetでインストール可能なOpenSSLは、以下のコマンドラインで表示できる。

winget search openssl



wingetでインストール可能なOpenSSLの一覧を表示させる wingetでインストール可能なOpenSSLの一覧を表示させる

 ここでは、開発用ライブラリを含まない軽量版の「OpenSSL Light 3.3.1」をインストールしてみる。それには、そのIDである「ShiningLight.OpenSSL.Light」を以下のように指定しつつ「winget install」を実行する。

winget install ShiningLight.OpenSSL.Light



 すると、まず必須のランタイム「Visual C++ 再配布可能パッケージ」がインストールされる。続いて、OpenSSL本体がインストールされる。どちらも確認ダイアログが表示されたら、適宜操作してインストールを進めること。

wingetでOpenSSLをインストールする wingetでOpenSSLをインストールする

●やはりPATH環境変数へのパス追加は必要

 このOpenSSLでも、openssl.exeが存在するフォルダへのパスをPATH環境変数に手動で加える必要がある(設定しないと、いちいちフルパスでOpenSSLのありかを指定しなければならない)。

 そのパスはデフォルトで「C:\Program Files\OpenSSL-Win64\bin」である。これをPATH環境変数に加えること(手順は後述)。

 wingetでインストールできる他のOpenSSLでは、インストール先のパスが異なる場合がある。当然、PATH環境変数に追加すべきパスも変わるので注意していただきたい。

方法その4――Windows OS版OpenSSLのインストーラーをダウンロードしてインストールする

 前述のwingetでインストールした「OpenSSL Light 3.3.1」は、実は以下のWebサイトでインストーラーが配布されている。

 もしwingetが利用できない場合は、ここからインストーラーをダウンロードして手動でインストールすればよい。

Windows OS版OpenSSL実行ファイルを配布しているWebサイトの例 Windows OS版OpenSSL実行ファイルを配布しているWebサイトの例

●インストーラーの選び方

 上記ページにはたくさんのインストーラーが載っていて迷ってしまいがちだ。まずバージョンについては、LTS(長期サポート)が必要ならVer.3.0を、最新機能が必要なら最新版(執筆時点ではVer.3.3)をそれぞれ選ぶのが原則になるだろう。

 「EXE」「MSI」は実行ファイルの形式を表す。通常は「EXE」の方でよい。「MSI」はActive Directoryで配布する場合などに必要となる。

 「Win32」「Win64」「ARM」はそれぞれプラットフォームのアーキテクチャを意味する。これはOpenSSLを実行するWindows OSの種類に合わせればよい。

 「Light」は開発向けライブラリが付属しておらず、インストーラーのサイズが小さい「軽量版」のことだ。プログラム開発をするのでなければ軽量版で十分だろう。

●事前にVC++再頒布可能パッケージをインストールする必要がある

 上記ページで配布されているOpenSSLを実行するには、Microsoft提供の「Visual C++再配布可能パッケージ」が必要になる。これは以下のページからダウンロードできる。

 このページの「最新の Microsoft Visual C++ 再頒布可能パッケージ バージョン」という見出しの下にある表のうち、32bit Windows OSなら「X86」、64bit Windows OSなら「X64」の各リンクをそれぞれクリックする。

Microsoft提供の「Visual C++再配布可能パッケージ」を事前にインストールしておく Microsoft提供の「Visual C++再配布可能パッケージ」を事前にインストールしておく

 ダウンロードしたファイルを起動すれば、簡単にインストールできる。

●OpenSSLのインストーラーを起動してインストールする

 次は、ダウンロードしておいたOpenSSLのインストーラーを起動し、以下の画面のようにインストールする。途中でWindows OSのセキュリティ機能が警告ダイアログを発したら、マルウェアの恐れがなく、また企業などの組織内ルールに反していない、と判断できる場合のみ、インストールを進めるべきだろう。

Windows OS版OpenSSLを手動でインストールする(1/4) Windows OS版OpenSSLを手動でインストールする(1/4)
Windows OS標準のMicrosoft Defender SmartScreenがOpenSSLのインストーラーの起動を止めてしまう場合がある。マルウェアの恐れがあったり、組織のルールに反していたりする場合は、上述の他の方法を検討した方がよい。
Windows OS版OpenSSLを手動でインストールする(2/4) Windows OS版OpenSSLを手動でインストールする(2/4)
Windows OS標準のUAC(ユーザーアカウント制御)がOpenSSLのインストーラーの起動を止めてしまうことがある。やはり上述の他の方法が利用できないか検討した方がよい。
Windows OS版OpenSSLを手動でインストールする(3/4) Windows OS版OpenSSLを手動でインストールする(3/4)
Windows OS版OpenSSLを手動でインストールする(4/4) Windows OS版OpenSSLを手動でインストールする(4/4)

■操作手順

  1. Microsoft Defender SmartScreenの警告ダイアログが表示されたら、[詳細情報]をクリックし、起動を止められたアプリの名称がOpenSSLのインストーラーであることを確認。
  2. マルウェアの恐れがないと判断できるなら[実行]ボタンをクリック
  3. ユーザーアカウント制御(UAC)による警告ダイアログでは、マルウェアの恐れがないと判断できるなら[はい]ボタンをクリック
  4. インストーラーのウィザードが始まったら、最初の画面ではライセンス条項を確認してから[I accept the agreement]を選択する。[Next]ボタンをクリックしてウィザードを進めていく
  5. Select Additional Tasks」画面では、[The OpenSSL binaries (/bin) directory]ラジオボタンを選択する。[Next]ボタンをクリックしてウィザードを進め、完了させる

 以上でOpenSSLのインストールは完了だ。デフォルトでは「C:\Program Files\OpenSSL-Win64\bin」にopenssl.exeがインストールされる。このパスをPATH環境変数に加える(手順はすぐ後で説明)。

openssl.exeにパスを通す

 上記のうち、WSL以外の方法でOpenSSLをインストールした場合、実行時にいちいちopenssl.exeのありかをフルパスで指定しなければならない。これは面倒なので、以下の手順で実行パス(PATH環境変数)の設定を変更する。

●「openssl.exe」がどこにあるか確認する

 以下のコマンドラインを実行すると、c:ドライブ全体でopenssl.exeが検索され、そのありかが表示される。

dir /a /s c:\openssl.exe



 複数のドライブが対象なら「c:」を別のドライブ名に変えつつ実行を繰り返すこと。

●openssl.exeのありかをPATH環境変数に加える

 openssl.exeがあるフォルダのパスを確定したら、それをPATH環境変数に追加する。それには、以下の画面のように「システムのプロパティ」ダイアログを操作/設定する。

 [システムのプロパティ]を開く方法については、TIPS「コントロールパネルの[システム](相当)や[システムのプロパティ]を素早く開く方法」が参考になる。

openssl.exeにパスを通す(1/4) openssl.exeにパスを通す(1/4)
openssl.exeにパスを通す(2/4) openssl.exeにパスを通す(2/4)
openssl.exeにパスを通す(3/4) openssl.exeにパスを通す(3/4)
openssl.exeにパスを通す(4/4) openssl.exeにパスを通す(4/4)

■操作手順

  1. Windows]+[R]キーを押して「ファイルを指定して実行」ダイアログを開き、「SystemPropertiesAdvanced」と入力して[Enterキー]を押す
  2. システムのプロパティ」ダイアログの[詳細設定]タブが開いたら、[環境変数]ボタンをクリック
  3. 環境変数」ダイアログが表示されたら、「ユーザー環境変数」欄の[Path]をダブルクリックする。全ユーザーがOpenSSLを利用する場合は、「システム環境変数」欄の方の[Path]を編集する
  4. 環境変数名の編集」ダイアログが表示されたら、[新規]ボタンをクリック
  5. 参照]ボタンをクリック
  6. フォルダーの参照」ダイアログが表示されたら、openssl.exeが存在するフォルダを見つけて選択
  7. OK]ボタンをクリックして元の「環境変数名の編集」ダイアログに戻り、Pathの最後に<openssl.exeが存在するフォルダ>が追加されたことを確認
  8. OK]ボタンをクリックしていって各ダイアログを閉じる

 Git同梱のOpenSSLを利用する場合、そのパスは原則としてPATH環境変数の末尾に追加した方がよいだろう。Gitではcurl.exeのように、Windows OSにも含まれるコマンドが一緒にインストールされる。そのため、「%SystemRoot%\system32」などWindows OS標準のフォルダのパスより前にGit内のパスを記述すると、Git内のコマンドの方が起動されてしまい、予期せぬ挙動を引き起こしかねないからだ。

 Path環境変数の設定の詳細については、TIPS「Path環境変数を設定/編集して、独自のコマンドを実行可能にする」を参照していただきたい。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。