記事作成の背景
Next.jsでアプリを作成する際に、認証ライブラリである「NextAuth.js」を導入することになりました。
アプリ内の特定のURLに認証機能を付与することで、外部からの攻撃をある程度防ぐことができます。
しかし、SSL化すると開発中のページに遷移できなくなってしまいました。
では、どうするかというとオープンソースのSSL機能である「Open SSL」を導入しようということで、備忘録として作成するに至りました。
Open SSLとは何か?
OpenSSLとは、Web上で利用されているSSL(Secure Sockets Layer)/TLS(Transport Layer Security)機能を有するソフトウェアの1種です。
OpenSSLは他のソフトウェアに組み込むことで利用するライブラリです。
しかもオープンソースなツールとして提供されています。
OpenSSLはC言語で作られており、Windows、Macのほかにネットワーク機器などでも利用されています。
SSL化することで得られるメリット
SSLとは、インターネット上の相手−相手間の通信を暗号化する仕組みのことです。
具体的に個人情報の保護や、なりすましの防止など、システムやサイトへのセキュリティレベルを向上させるためのの技術です。
SSL化が施されていないシステムやサイトは、外部からの攻撃にさらされたり、または侵入されやすい状態に陥ります。
それによって個人情報などの重要情報の漏洩リスクの危険性が高まります。
そのような、外部または攻撃者からの攻撃を防ぎ、情報漏洩リスクを下げるためにSSL化はとても重要なことです。
Open SSLをWindows11に導入するための手順
Open SSLのダウンロード
Open SSLの実行ファイル(exe)のダウンロードはここからダウンロードできます。
Windows11の場合は、「Win64 OpenSSL v3.3.2 Light」(2024年10月5日時点)をクリックして、インストーラをダウンロードしましょう。(赤枠の部分)
OpenSSLのインストール
インストーラをダブルクリックするとライセンス同意画面が表示されるので、「I accept the agreement」にチェックを入れて[Next]をクリックします。
インストール先について
次に、インストール先がデフォルトで表示されますが特に指定する必要はないので、そのまま[Next]をクリックして先に進みます。
インストール先のフォルダ名について
OpenSSLをインストールするフォルダ名について聞いてきますが、デフォルトの指定先で大丈夫です。
[Next]をクリックして次に進みましょう。
OpenSSLのDLLを格納する先について
(ちょっとこの部分は重要です!)
OpenSSLのDLLを格納する先についてです。
アプリ固有のDLLをシステムフォルダに格納してしますと、何らかのトラブルの原因になる可能性があるのでお勧めしません。
なので[The OpenSSL binaries (/bin) directory]を選択しましょう。
[Next]をクリックします。
インストールパラメータについて
インストールパラメータに関する再確認の画面となります。
特にいじる必要もないので[Install]をクリックします。
OpenSSLの開発先に対する寄付について
これは、OpenSSLの開発先に対する寄付を募る画面となります。
デフォルトで先頭にチェックが入っていますが、チェックを外して構わないです。
[Finish]をクリックします。
環境変数を設定する
Open SSLをコマンドで操作するには、環境変数を設定してあげる必要があるので設定しておきます。
Open SSLの環境変数設定がされているかを確認する
環境変数の設定完了後、コマンドプロンプトを起動して確認してみましょう。
確認する方法は、下記のコマンドでできます。
openssl version
こんなエラーが出たら...
'openssl'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されません。
上記のエラーが出た場合は、少し時間を空けるか、再起動してみましょう。
こんな方法でもOpen SSLのパス設定の確認ができるよ
OpenSSLが格納されているディレクトリまで移動して...↓
(格納されているディレクトリ)
C:\ProgramFiles\Open-SSLWin64\bin
このコマンドを入力する。
openssl version
結果が次のように表示されていれば正しくインストールされています。
OpenSSL 3.3.2 3 Sep 2024 (Library: OpenSSL 3.3.2 3 Sep 2024)
以上が、Open SSLのインストールまでの設定でした。