電子証明書やSSL/TLSのための標準的なツールキット「OpenSSL Ver.3(バージョン3)」。しかしWindows OSには標準でインストールされていない。Windows OSでOpenSSL Ver.3を利用するのに必要なインストール手順と注意点を解説する。
対象: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)]に読み替えていただきたい。
Windows Subsystem for Linux(WSL)がインストール済みなら、その中にOpenSSLも組み込まれているはずだ。OpenSSLはさまざまなツールやユーティリティで用いられているため、多くのディストリビューションではデフォルトでインストールされる。
WSLについては、これから始めるWSL「Windows 10/11でLinux環境『WSL』を始める第一歩」を参照していただきたい。
WSLを起動したら、「openssl version」と実行してみよう。インストール済みのOpenSSLのバージョンが表示されるはずだ。
いちいちWSLのウィンドウを開かなくても、コマンドプロンプトから以下のようにコマンドラインを入力して実行すれば、WSL内のOpenSSLを呼び出せる。
wsl openssl <OpenSSLのコマンドラインオプション>
WSLの場合、OpenSSLのバージョンは、インストールしたディストリビューションのパッケージリポジトリに依存する。執筆時点ではLTS(長期サポート)の対象であるVer.3.0が標準のリポジトリに登録されていて、それがインストールされていることが多いようだ。
最新バージョン(執筆時点ではVer.3.3)を利用したければ、そのバージョンのパッケージを別のリポジトリなどで見つけてインストールするか、ソースコードからコンパイルする必要がある。
開発の仕事に携わっていれば、「Git for Windows」(以下、「Git」と略)がインストール済みであることも多いだろう。
その場合、Gitと一緒にOpenSSLもインストールされている。Git Bashを起動すると、以下の画面のようにそのままOpenSSLが使えるはずだ。
Gitに含まれるOpenSSL(openssl.exe)は、デフォルトで「C:\Program Files\Git\usr\bin」に格納されている。このフォルダのパスをPATH環境変数に加えると、コマンドプロンプトからでもGit版OpenSSLが呼び出せるようになる(PATH環境変数にパスを加える手順は後述)。
Windows OS標準のパッケージマネージャ「winget」が利用できるなら、前述のWSLやGitなどを必要としないWindows OS版OpenSSのインストールが簡単にできる。
wingetの基本については、Windows 10 The Latest「アプリのインストールや更新をコマンドでサクっと実行『winget』の使い方」を参照していただきたい。
wingetでインストール可能なOpenSSLは、以下のコマンドラインで表示できる。
winget search openssl
ここでは、開発用ライブラリを含まない軽量版の「OpenSSL Light 3.3.1」をインストールしてみる。それには、そのIDである「ShiningLight.OpenSSL.Light」を以下のように指定しつつ「winget install」を実行する。
winget install ShiningLight.OpenSSL.Light
すると、まず必須のランタイム「Visual C++ 再配布可能パッケージ」がインストールされる。続いて、OpenSSL本体がインストールされる。どちらも確認ダイアログが表示されたら、適宜操作してインストールを進めること。
このOpenSSLでも、openssl.exeが存在するフォルダへのパスをPATH環境変数に手動で加える必要がある(設定しないと、いちいちフルパスでOpenSSLのありかを指定しなければならない)。
そのパスはデフォルトで「C:\Program Files\OpenSSL-Win64\bin」である。これをPATH環境変数に加えること(手順は後述)。
wingetでインストールできる他のOpenSSLでは、インストール先のパスが異なる場合がある。当然、PATH環境変数に追加すべきパスも変わるので注意していただきたい。
前述のwingetでインストールした「OpenSSL Light 3.3.1」は、実は以下のWebサイトでインストーラーが配布されている。
もしwingetが利用できない場合は、ここからインストーラーをダウンロードして手動でインストールすればよい。
上記ページにはたくさんのインストーラーが載っていて迷ってしまいがちだ。まずバージョンについては、LTS(長期サポート)が必要ならVer.3.0を、最新機能が必要なら最新版(執筆時点ではVer.3.3)をそれぞれ選ぶのが原則になるだろう。
「EXE」「MSI」は実行ファイルの形式を表す。通常は「EXE」の方でよい。「MSI」はActive Directoryで配布する場合などに必要となる。
「Win32」「Win64」「ARM」はそれぞれプラットフォームのアーキテクチャを意味する。これはOpenSSLを実行するWindows OSの種類に合わせればよい。
「Light」は開発向けライブラリが付属しておらず、インストーラーのサイズが小さい「軽量版」のことだ。プログラム開発をするのでなければ軽量版で十分だろう。
上記ページで配布されているOpenSSLを実行するには、Microsoft提供の「Visual C++再配布可能パッケージ」が必要になる。これは以下のページからダウンロードできる。
このページの「最新の Microsoft Visual C++ 再頒布可能パッケージ バージョン」という見出しの下にある表のうち、32bit Windows OSなら「X86」、64bit Windows OSなら「X64」の各リンクをそれぞれクリックする。
ダウンロードしたファイルを起動すれば、簡単にインストールできる。
次は、ダウンロードしておいたOpenSSLのインストーラーを起動し、以下の画面のようにインストールする。途中でWindows OSのセキュリティ機能が警告ダイアログを発したら、マルウェアの恐れがなく、また企業などの組織内ルールに反していない、と判断できる場合のみ、インストールを進めるべきだろう。
以上でOpenSSLのインストールは完了だ。デフォルトでは「C:\Program Files\OpenSSL-Win64\bin」にopenssl.exeがインストールされる。このパスをPATH環境変数に加える(手順はすぐ後で説明)。
上記のうち、WSL以外の方法でOpenSSLをインストールした場合、実行時にいちいちopenssl.exeのありかをフルパスで指定しなければならない。これは面倒なので、以下の手順で実行パス(PATH環境変数)の設定を変更する。
以下のコマンドラインを実行すると、c:ドライブ全体でopenssl.exeが検索され、そのありかが表示される。
dir /a /s c:\openssl.exe
複数のドライブが対象なら「c:」を別のドライブ名に変えつつ実行を繰り返すこと。
openssl.exeがあるフォルダのパスを確定したら、それをPATH環境変数に追加する。それには、以下の画面のように「システムのプロパティ」ダイアログを操作/設定する。
[システムのプロパティ]を開く方法については、TIPS「コントロールパネルの[システム](相当)や[システムのプロパティ]を素早く開く方法」が参考になる。
Git同梱のOpenSSLを利用する場合、そのパスは原則としてPATH環境変数の末尾に追加した方がよいだろう。Gitではcurl.exeのように、Windows OSにも含まれるコマンドが一緒にインストールされる。そのため、「%SystemRoot%\system32」などWindows OS標準のフォルダのパスより前にGit内のパスを記述すると、Git内のコマンドの方が起動されてしまい、予期せぬ挙動を引き起こしかねないからだ。
Path環境変数の設定の詳細については、TIPS「Path環境変数を設定/編集して、独自のコマンドを実行可能にする」を参照していただきたい。
■関連リンク
Copyright© Digital Advantage Corp. All Rights Reserved.