はじめに
テスト環境
- Windows11
- OpenSSL 3.4.1
- Strawberry Perl 5.40.0.1
- NASM 2.16.03
前提条件
- Git をインストールしてある事
- Visual Studio 2022 をインストールしてある事
手順
Perl のインストール
手順1
Strawberry Perl の公式サイトに行き、最新版の MSI ファイルをダウンロードする。

手順2
ダウンロードした MSI ファイルをダブルクリックして実行し、Perl をインストールする。

手順3
コマンドプロンプトを開いて「perl –version」を実行した際に、インストールした Perl のバージョンが正常に表示される事を確認する。

NASM(Netwide Assembler)のインストール
手順4
NASM の公式サイトに行き、最新版のダウンロードリンクをクリックする。

手順5
「win64/」フォルダをクリックする。

手順6
「nasm-{バージョン番号}-installer-x64.exe」をクリックして EXE ファイルをダウンロードする。

手順7
ダウンロードした EXE ファイルをダブルクリックして実行し、NASM をインストールする。

手順8
ダウンロードした EXE ファイルを右クリックして管理者として実行し、NASM をインストールする。

手順9
コマンドプロンプトを開いて「nasm –version」を実行し、インストールした最新バージョンの NASM が表示される事を確認する。
この時、インストールした最新バージョンの NASM が表示されず、「where nasm」を実行すると 「C:\Strawberry\c\bin\nasm.exe」と表示される場合(インストールした NASM がシステムに認識されていない場合)は以下の手順に従う。

手順10
Windows の「設定 > システム > バージョン情報 > システムの詳細設定」を押す。

手順11
「環境変数(N)… > システム環境変数(S) > Path」を選択している状態で「編集(I)…」を押す。

手順12
「新規(N)」」を押して「C:\Program Files\NASM」を追加する。

手順13
追加したパスが「C:\Strawberry\c\bin」の上に来るように「上へ(U)」を数回押して「OK」を押す。

手順14
コマンドプロンプトを開いて「nasm –version」を実行した際に、インストールした最新バージョンの NASM が表示される事と「where nasm」を実行した際に「C:\Program Files\NASM\nasm.exe」が一番上に表示される事を確認する。

GitHub リポジトリのクローン
手順15
C ドライブに「OpenSSL」フォルダを作成する。

手順16
Git Bash を開いて「cd C:\OpenSSL」を実行し、OpenSSL フォルダに移動する。

手順17
「git clone https://github.com/openssl/openssl.git」を実行して GitHub リポジトリをクローンする。

OpenSSL のビルド
手順18
スタートで右クリックして「cmd」等と検索し、コマンドプロンプトを右クリックして「管理者として実行」を選択する。

手順19
コマンドプロンプトが開いたら「”C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat” -arch=amd64」を実行して Visual Studio の開発者コマンドプロンプトをセットアップする。

手順20
「cd C:\OpenSSL\openssl」を実行して、クローンしたフォルダに移動する。

手順21
「perl Configure VC-WIN64A」を実行してビルド設定を作成する。

手順22
「nmake」を実行してビルドを開始し、ビルド完了後に「C:/OpenSSL/openssl」内に「libcrypto-3-x64.dll」と「libssl-3-x64.dll」が生成されている事を確認する。

最後に
エラーと対処法
「VsDevCmd.bat」の実行に失敗する
コマンドプロンプトで「”C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat” -arch=amd64」を実行すると以下のエラーが発生する場合は
発生場所 行:1 文字:86
+ ... Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64
+ ~~~~~
式またはステートメントのトークン '-arch' を使用できません。
発生場所 行:1 文字:1
+ "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tool ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
代入式が無効です。代入演算子に対する入力には、代入を受け入れることができるオブジェクト (変数やプロパティなど) を指定する必要があります。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
コマンドの冒頭に「&」を付けて「& “C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat” -arch=amd64」というコマンドで実行すると上手く行く。
「nmake」を実行できない
コマンドプロンプトで「nmake」を実行すると「’nmake’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが発生する場合は Microsoft C++ Build Tools をインストールしてシステム環境変数に「C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\{バージョン番号}\bin\Hostx64\x64」というパスを追加すると「nmake」を正常に実行できるようになる。
「nmake」実行中にコンパイルエラーが発生する
コマンドプロンプトで「nmake」を実行すると「fatal error C1083: Cannot open include file: ‘○○.h’: No such file or directory」というコンパイルエラーが発生する場合は Microsoft C++ Build Tools をインストールしてコマンドプロンプトで「”C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat” x64」を実行するとシステム環境変数に必要なパスが全て追加されて「nmake」を正常に実行できるようになる。