Trusted Design

OpenSSLをWindows環境でビルドする

概要

Windows PCでOpenSSLをビルドします。
ビルドするのが面倒な場合は,Windows版のインストーラを使ってインストールすることができます。こちらを参照してください。

今回は2020年2月20日時点での最新版のOpenSSL 1.1.1dを利用しました。ほかのバージョンでも基本的にやることは同じです。

前提として必要なもの

Windows環境でビルドをするのでコンパイラーであるVisual Studioなどが必要です。

  • Visual Studio
    Visual Studio Community 2019 Version 16.4.5で試しました。
  • OpenSSL
    1.1.1d (2020年2月20日時点の最新版)で試しました。
  • Perl
    Strawberry Perlの場合,こちらからダウンロードしてインストールします。今回は5.30.1.1で試しました。
    Active Perlの場合,こちらからダウンロードしてインストールします。
  • NASM
    NASMはOpenSSLをビルドするのに必要です。2.14.02で試しました。

PerlやNASMはインストール後にパスを通しておく必要があります。

ビルド手順

以下の手順でビルドしていきます。環境が整っていれば簡単です。

OpenSSLのダウンロード

OpenSSLのサイトからソースをダウンロードしてきます。 https://www.openssl.org/source/

ダウンロードしてきたソースは,「openssl-1.1.1d.tar.gz」のファイル名で圧縮されていますので,7zipなどを使って解凍します。
解凍したファイルをOpenSSLをインストールするフォルダにコピーします。
今回はC:\OpenSSLフォルダを作成して,その下に解凍したopenssl-1.1.1dフォルダをそのままコピーしました。

OpenSSLのビルド

以下の手順でビルドしていきます。
x64 Native Tools Command Prompt for VS 2019を管理者で起動します。

コマンドプロンプトの起動
カレントディレクトリをOpenSSLのインストールフォルダに移動します。
カレントディレクトリ
Perlを利用してConfigure処理を行います。次の2つのコマンドを実行します。

perl Configure VC-WIN64A -static --prefix=C:/openssl/win/x64
perl Configure VC-WIN64A --prefix=C:\openssl\x64 --openssldir=C:\OpenSSL\openssl-1.1.1d\ssl
Configureコマンド

つぎにmakeコマンドを実行します。


nmake
makeコマンドは結構時間がかかります。のんびり待ちましょう。
makeコマンド

makeが終わったらmakeが成功したか確認してみます。


nmake test
Passと出ているので,makeは成功しているようです。
make testコマンド

OpenSSLのインストール

次に,OpenSSLをインストールします。


nmake install
make installコマンド

インストール結果の確認

インストールが完了したら,OpenSSLが正しく動作するか確認します。
バージョンを確認するのですが,OpenSSLのbinフォルダにパスが通っていないと,正しく動作しません。パスの設定方法については,こちらを参考にしてください。


openssl version
"OpenSSL 1.1.1d 10 Sep 2019"と出ていれば成功です。
バージョンの確認

あれれ?OpenSSL 1.1.1cとなっています。
どうやらこれは,必要なソフトウェアのStrawberry PerlがOpenSSLを持っていて,それと競合しているためです。
OpenSSLがどこに存在しているのかを確認してみます。


where openssl
OpenSSLがどこに存在するのか確認します。
OpenSSLの存在確認
私の環境ではOpenSSLが2つ存在することがわかりました。そして,Strawberry PerlのOpenSSLのほうが上に書かれているため,Strawberry PerlのOpenSSLが優先して利用されています。
パスの順番をStrawberry PerlのOpenSSLの上に持ってきます。
環境変数を開くと,Strawberry Perlのパスが書かれているので,先ほど追加したOpenSSLのパスをその上に持っていきます。
こんな感じで。
環境変数の変更
もう一度,OpenSSLの存在確認をします。(PCを再起動しないと環境変数の変更が反映されません)

where openssl
OpenSSLがどこに存在するのか確認します。
OpenSSLの存在確認
今回インストールしたOpenSSLのパスが上に来ています。それではOpenSSLのバージョンを確認してみます。

openssl version
"OpenSSL 1.1.1d 10 Sep 2019"と出ました。
バージョンの確認
これでインストールは完了です。