WebアプリケーションサーバーでSSLを有効化しようとすると
あるWebアプリケーションサーバーのソフトウェアでHTTPSを有効にしようとし、SSLをenabledにし、OpenSSL(こちらからWindows版のダウンロードサイトから取得したもの)で作成した自己署名のCERTファイルとプライベート鍵ファイルのパスを指定し、さぁ起動させようとすると、失敗してしまいました。
ログを見ると、ここの部分が原因のようなのですが…
std::exception::what: The input data corresponds to a key of size 4096 instead of the expected size 2048
00000014 2021-03-23 13:52:25 0x00001cc8 agent::httpserver E Error creating context for self-signed SSL certificate
Code language: Access log (accesslog)
どうやら、「The input data corresponds to a key of size 4096 instead of the expected size 2048」というのがルート原因のようです。
ソフトウェアによっては2048bitの秘密鍵しか対応していないものも
どうやら、Webアプリケーションサーバーによっては、RSAの公開鍵の鍵長が2048bitしか対応していないものもあるようです。 今回の場合、OpenSSLで特に鍵長を指定しないで作成した秘密鍵が4096bitのもので、それだと対応していなかったのです。
OpenSSLでRSAの2048bitに指定して鍵ファイル作成
さてそれでは2048bitの鍵長で鍵ファイルを作成し直します。OpenSSLの場合、2048bitのオプションを指定するには、「rsa:2048」を付けます。さらにその前に「-newkey」を付け足すことで実現できます。
下記の太字の部分がオプションを追加したものです。
openssl req -nodes -new -x509 -keyout server.key -out server.cert <strong>-newkey rsa:2048 </strong>
Code language: DOS .bat (dos)
この2048bitsの鍵に差し替えることでWebアプリケーションサーバーの起動ができました。鍵長がこんなにも重要になってくるなんて初めてのことだったので忘れないうちに記事にまとめておきました。
No responses yet