【Windows 10/11】WindowsにOpenSSL Ver.3をインストールして証明書を取り扱う:Tech TIPS
電子証明書や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)]に読み替えていただきたい。
方法その1――WSLに含まれるOpenSSLを利用する
Windows Subsystem for Linux(WSL)がインストール済みなら、その中にOpenSSLも組み込まれているはずだ。OpenSSLはさまざまなツールやユーティリティで用いられているため、多くのディストリビューションではデフォルトでインストールされる。
WSLについては、これから始めるWSL「Windows 10/11でLinux環境『WSL』を始める第一歩」を参照していただきたい。
WSLを起動したら、「openssl version」と実行してみよう。インストール済みのOpenSSLのバージョンが表示されるはずだ。
●コマンドプロンプトからWSL内のOpenSSLを直接呼び出すには
いちいちWSLのウィンドウを開かなくても、コマンドプロンプトから以下のようにコマンドラインを入力して実行すれば、WSL内のOpenSSLを呼び出せる。
wsl openssl <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版OpenSSLをコマンドプロンプトから直接呼び出すには
Gitに含まれるOpenSSL(openssl.exe)は、デフォルトで「C:\Program Files\Git\usr\bin」に格納されている。このフォルダのパスをPATH環境変数に加えると、コマンドプロンプトからでもGit版OpenSSLが呼び出せるようになる(PATH環境変数にパスを加える手順は後述)。
方法その3――wingetでOpenSSLをインストールする
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本体がインストールされる。どちらも確認ダイアログが表示されたら、適宜操作してインストールを進めること。
●やはり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サイトでインストーラーが配布されている。
- Win32/Win64 OpenSSL Installer for Windows(Shining Light Productions)
もしwingetが利用できない場合は、ここからインストーラーをダウンロードして手動でインストールすればよい。
●インストーラーの選び方
上記ページにはたくさんのインストーラーが載っていて迷ってしまいがちだ。まずバージョンについては、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++再配布可能パッケージ」が必要になる。これは以下のページからダウンロードできる。
- サポートされている最新のVisual C++再頒布可能パッケージのダウンロード(Microsoft Learn)
このページの「最新の Microsoft Visual C++ 再頒布可能パッケージ バージョン」という見出しの下にある表のうち、32bit Windows OSなら「X86」、64bit Windows OSなら「X64」の各リンクをそれぞれクリックする。
ダウンロードしたファイルを起動すれば、簡単にインストールできる。
●OpenSSLのインストーラーを起動してインストールする
次は、ダウンロードしておいたOpenSSLのインストーラーを起動し、以下の画面のようにインストールする。途中でWindows OSのセキュリティ機能が警告ダイアログを発したら、マルウェアの恐れがなく、また企業などの組織内ルールに反していない、と判断できる場合のみ、インストールを進めるべきだろう。
Windows OS版OpenSSLを手動でインストールする(1/4)
Windows OS標準のMicrosoft Defender SmartScreenがOpenSSLのインストーラーの起動を止めてしまう場合がある。マルウェアの恐れがあったり、組織のルールに反していたりする場合は、上述の他の方法を検討した方がよい。
Windows OS版OpenSSLを手動でインストールする(2/4)
Windows OS標準のUAC(ユーザーアカウント制御)がOpenSSLのインストーラーの起動を止めてしまうことがある。やはり上述の他の方法が利用できないか検討した方がよい。
■操作手順
- Microsoft Defender SmartScreenの警告ダイアログが表示されたら、[詳細情報]をクリックし、起動を止められたアプリの名称がOpenSSLのインストーラーであることを確認。
- マルウェアの恐れがないと判断できるなら[実行]ボタンをクリック
- ユーザーアカウント制御(UAC)による警告ダイアログでは、マルウェアの恐れがないと判断できるなら[はい]ボタンをクリック
- インストーラーのウィザードが始まったら、最初の画面ではライセンス条項を確認してから[I accept the agreement]を選択する。[Next]ボタンをクリックしてウィザードを進めていく
- 「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「コントロールパネルの[システム](相当)や[システムのプロパティ]を素早く開く方法」が参考になる。
■操作手順
- [Windows]+[R]キーを押して「ファイルを指定して実行」ダイアログを開き、「SystemPropertiesAdvanced」と入力して[Enterキー]を押す
- 「システムのプロパティ」ダイアログの[詳細設定]タブが開いたら、[環境変数]ボタンをクリック
- 「環境変数」ダイアログが表示されたら、「ユーザー環境変数」欄の[Path]をダブルクリックする。全ユーザーがOpenSSLを利用する場合は、「システム環境変数」欄の方の[Path]を編集する
- 「環境変数名の編集」ダイアログが表示されたら、[新規]ボタンをクリック
- [参照]ボタンをクリック
- 「フォルダーの参照」ダイアログが表示されたら、openssl.exeが存在するフォルダを見つけて選択
- [OK]ボタンをクリックして元の「環境変数名の編集」ダイアログに戻り、Pathの最後に<openssl.exeが存在するフォルダ>が追加されたことを確認
- [OK]ボタンをクリックしていって各ダイアログを閉じる
Git同梱のOpenSSLを利用する場合、そのパスは原則としてPATH環境変数の末尾に追加した方がよいだろう。Gitではcurl.exeのように、Windows OSにも含まれるコマンドが一緒にインストールされる。そのため、「%SystemRoot%\system32」などWindows OS標準のフォルダのパスより前にGit内のパスを記述すると、Git内のコマンドの方が起動されてしまい、予期せぬ挙動を引き起こしかねないからだ。
Path環境変数の設定の詳細については、TIPS「Path環境変数を設定/編集して、独自のコマンドを実行可能にする」を参照していただきたい。
■関連リンク
- OpenSSLのWebサイト(OpenSSL Project)
- MinGW-w64
- winget ツールを使用したアプリケーションのインストールと管理(Microsoft Learn)
- Windows 10向けwingetの配布ページ(Microsoft Store)
Copyright© Digital Advantage Corp. All Rights Reserved.