Chromeが81にバージョンアップされると、TLS1.0や1.1を使っていると警告ブロックになるとのうわさがあるため、弊社のサーバは問題無いけど、困っている人がもしかしたらいるかも!?という前提で簡単にまとめておきます。
OpenSSLとmod_sslだけソースからコンパイルしたものを使う方法もあるようだけど、OPenSSLのバージョンが新しくならなかったので速攻であきらめました。
#大まかな手順
ApacheとOpenSSLをソースからコンパイルする。移行をできるだけ簡単にしたいので、Apacheの設定ファイルは基本的にそのまま使用する。
#サーバ環境
Debian5(lenny)
Apache2.2.9
OpenSSL0.9.8
手順
####OpenSSL
まずはOpenSSLをDLしてコンパイル。今回は「openssl-1.0.1q.tar.gz」を選択。こっちは簡単。
https://www.openssl.org/source/old/1.0.1/
./config --prefix=/usr/local/ssl shared zlib
make
make install
続いてldconfigで共有ライブラリを設定。下記のファイルを新規で作成したパスを追加。
/usr/local/ssl/lib
キャッシュファイル更新後、grepで確認。
ldconfig
ldconfig -p | grep -i libssl
libssl.so.1.0.0 (libc6) => /usr/local/ssl/lib/libssl.so.1.0.0
libssl.so.0.9.8 (libc6, hwcap: 0x0008000000008000) => /usr/lib/i686/cmov/libssl.so.0.9.8
libssl.so.0.9.8 (libc6, hwcap: 0x0004000000000000) => /usr/lib/i586/libssl.so.0.9.8
libssl.so.0.9.8 (libc6, hwcap: 0x0002000000000000) => /usr/lib/i486/libssl.so.0.9.8
libssl.so.0.9.8 (libc6) => /usr/lib/libssl.so.0.9.8
libssl.so (libc6) => /usr/local/ssl/lib/libssl.so
libssl.so (libc6) => /usr/lib/libssl.so
libssl.soが二つあるけど、気にしないようにした。
####Apache
下記サイトより、同バージョンもしくは、ちょっと新しいバージョンをDLして展開。今回は「httpd-2.2.10.tar.gz」を使用。
https://archive.apache.org/dist/httpd/
./configure --enable-so --enable-ssl --with-ssl=/usr/local/ssl/ --with-included-apr --with-included-apr-util --enable-mods-shared="all ssl"
make
ここでエラー
ssl_engine_init.c:576: error: ‘STACK’ undeclared (first use in this function)
ssl_engine_init.c:576: error: (Each undeclared identifier is reported only once
新しいOpenSSLでは「STACK」が「_STACK」に変更されているので、下記2ファイルを修正。「httpd-2.2.16」以降では対応できている可能性あり。
httpd-2.2.10/modules/ssl/modules/ssl/ssl_engine_init.c
httpd-2.2.10/modules/ssl/modules/ssl/ssl_util_ssl.c
そしてコンパイル。
make
make install
設定ファイルを修正。追加だけ書いておきます。
Listen 443
LoadModule log_config_module modules/mod_log_config.so
LoadModule ssl_module modules/mod_ssl.so
※mod_sslはここで読むのがポイント。パッケージconfのパスを変更してもOpenSSLが新しくならない。
※他のLoadModuleはコメントアウト
//パッケージの設定ファイル
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
NameVirtualHost *:80
NameVirtualHost *:443
//パッケージの設定ファイル
Include /etc/apache2/sites-enabled/
#最後に
パッケージApacheを停止してソースバージョンを起動。下記コマンドなどで確認できます。
openssl s_client -connect ******.com:443