openssl.cnfが存在しない場合、Windows版ApacheでCSRを作成できない!
Windows版ApacheでCSRを作成できない場合がある。
これは、最近の事例だが、よく考えると、滅多に起きない事象……うーん、いや、もっと正確に言うと、今後二度と起きない特殊な事情のような気がする。
再現手順は以下となる。
(1)Windows版Apacheでコマンドプロンプトを起動し、opensslコマンドで秘密鍵(server.key)を作成する。
《以下は、2048ビットの秘密鍵をパスワードなしで作成するコマンド例》
C:\Program Files\Apache Software Foundation\Apache2.2\conf\ssl>openssl genrsa -out server.key 2048
Loading 'screen' into random state - done
Generating RSA private key, 2048 bit long modulus
........+++
......................+++
e is 65537 (0x10001)
※秘密鍵の作成には成功。
(2)opensslコマンドで、作成したばかりの秘密鍵(server.key)を使ってCSRを作成する。
C:\Program Files\Apache Software Foundation\Apache2.2\conf\ssl>openssl req -new -key server.key -out csr.txt
ここで以下のエラーメッセージが表示され、愕然とした。
Unable to load config info from C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf
「openssl.cnf」を呼び出せない、という意味のエラーメッセージなのだが、指定されたフォルダ(confフォルダ)の中にopenssl.cnfファイルが存在しなかった。
このようなトラブルは初めてである。
エラーの原因は、openssl.cnfファイルがconfフォルダ内に存在しないことにあることは明らかなので、あるべき場所(confフォルダ直下)にopenssl.cnfを設置すればエラーは解消しそうだ。
openssl.cnfファイルが勝手に消える、ということなど普通起きそうにないことだ。
誰かが、間違って削除してしまったのだろうか?
私が過去に操作ミスをして削除してしまったのだろうか?
少し考えてみたが、何故openssl.cnfファイルが消失していたのか、という原因は分かりそうになかった。
テストで使用しているApacheなので、Apacheのインストールやり直しなどをしている時に消失してしまった、ということはあるかもしれない。
さっさとCSRを作成したかったので、必要以上に考えることはやめることにする。
Apache LoungeよりApacheのファイル一式をダウンロードし、そのファイル一式に含まれていたopenssl.confファイルをconfフォルダ内に設置して再度opensslコマンドでCSRの作成を試みたところ、エラーが発生せず、無事にCSRを作成することができた。
C:\Program Files\Apache Software Foundation\Apache2.2\conf\ssl>openssl req -new -key server.key -out csr.txt
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
(以下略)
<まとめ>
openssl req -new -key server.key -out csr.txt
を実行した時に
Unable to load config info from C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf
というエラーメッセージが表示される場合は、openssl.cnfファイルがconfフォルダ内に存在しない可能性がある。
この場合、Apache LoungeからApacheのファイル一式をダウンロードし、ダウンロードしたファイルの中に含まれるopenssl.cnfファイルをconfフォルダ内に設置することで問題が解決する可能性がある。