2013年5月3日金曜日

WindowsサーバーのApacheのSSLが起動しなくてヒヤリ

WindowsサーバーにApacheで構築したWEBサーバーをSSL化することになり、余裕ぶって作業してたらSSLスタートが出来なくてハマってしまったのでメモ。

Apacheが起動に失敗する

秘密鍵ファイル、証明書ファイル、中間CAファイルを保存し、「httpd.conf」でIncludeした「httpd-ssl.conf」に正確なフルパスを記述しているけど、Apacheを起動しようとするとエラーになる。
logs/error.log を開くとこんなエラーメッセージ。
[error] Unable to configure RSA server private key
[error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
秘密鍵の値が合ってない…とか、マジか。

で、調べる。
まずは秘密鍵。
D:\Apache2.2\conf>openssl rsa -text -noout -in server.key
Private-Key: (2048 bit)
modulus:
  00:9c:~ホニャララ~

次に、証明書。
D:\Apache2.2\conf>openssl x509 -text -noout -in server.crt
Certificate:   Public-Key: (2048 bit)
  modulus:
    00:a6:~ホニャララ~

もう、modulusの値がいきなり全然違う。
で、あらためて各ファイルの中身をサクラエディタ確認すると…。
[秘密鍵ファイル]


[証明書ファイル]


分かりますかね。
そう、改行コード。証明書ファイルの方の改行コードが「CR+LF」になってやんの。(ついでに中間CAファイルも)

というわけで、証明書ファイルの改行コードをサクラエディタでLFに指定しなおして上書き保存、再度Apacheを起動させると、無事に立ち上がってくれました。Windows使ってる時点ですぐ疑うべきところなんですけどね。

やっぱりApache使うならサーバーはLinuxですな…。

0 件のコメント: