CentOS 5.9 + TLS 1.2
あるWEBサイトで、最新の FireFox でSSLの警告が出るようになった。
SSLは Let's Encryptで、何か更新処理を誤ったのだろうかと思ったのだけれど、他のブラウザ(Internet Explorer 11、Edge、Google Crome)では警告は出ておらず、FireFoxのみで警告が出ている。スマホでも同様にFireFoxでは警告が表示される。
この警告が出るのは、企業のサイトでは、ちょっとマズい感じ。
この警告がどうして出るのかいろいろ調べてみると、証明書そのものも問題ではなく、プロトコルの問題のようだ。
どうやら、各ブラウザが2020年に TLS 1.0、TLS 1.1 での接続ができなくなるように動作が変更されるようなので、FireFoxは、その事前警告を出しているようだ。
このWEBサイトはレンタルサーバで、OSは CentOS 5.9。
root権限が貰えているサーバであるけれど、テスト環境があるわけではないので、様々アップデートをかけるのは少々リスクが大きい。なんとかWEBサーバのみに影響範囲を抑える形で対処したい。
いろいろ悩んで、以下の方法で対処する事にした。
① 最新のopensslをユーザ領域に手動でインストールする。
② Apacheの起動スクリプトを修正し、上記(1)でインストールしたopensslをロードさせるようにする。
それでは、トライしてみる。
(1).opensslを手動でインストールする。
$ ./config shared enable-ssl2 enable-ssl3 --prefix=/*****/local
$ make
$ make install
稼働しているApacheは、古いバージョンのライブラリをロードする様になっている。
Apacheを再コンパイルするなどすると影響が大きいので、インストールしたライブラリのバージョンを偽装する事にする。
# ln -s libssl.so.1.0.0 libssl.so.6
# ln -s libcrypto.so.1.0.0 libcrypto.so.6
(2).Apacheが上記(1)でインストールしたライブラリを正しくロードするか、依存関係を確認してみる。
まず、通常の起動。
/usr/lib 配下のライブラリがロードされる。
libssl.so.6 => /lib/libssl.so.6 (0xb7b04000)
次に、上記(1)でインストールしたライブラリをロードさせての起動。
上記(1)でインストールしたライブラリがロードされた。
libssl.so.6 => /*****/local/lib/libssl.so.6 (0xb7a8d000)
よし、いけそうだ。
(3).Apacheの起動スクリプトを修正する。
# vi httpd
Apacheの起動部分に、LD_LIBRARY_PATHでopensslのパスを挿入する。
これにより、上記(1)でインストールしたライブラリは、Apacheに限定して使用される。
(4).Apacheを再起動する。
が、残念ながら、phpのモジュールのロードでエラーが発生してしまった。
httpd を停止中: [ OK ]
httpd を停止中: [失敗]
httpd を起動中: httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/php.conf: Cannot load /etc/httpd/modules/libphp5.so into server: /etc/httpd/modules/libphp5.so: undefined symbol: EVP_md2
[失敗]
#
がんばってphpの再インストールもトライしようかと思ったけれど、このWEBサイトではphpは使用していないので、phpのサービスを停止する事で対処する事にした。
(5).サーバのコントロール・パネルでphpのサービスを停止する。
(6).再びApacheを再起動する。
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
#
成功した!
(7).正常な鍵マークが復活!
無事、TLS 1.2 で通信された。
これでよし!
このサーバはレンタルサーバで、パッケージからのインストールされているものです。
> TLS1.0のままです。
そうですね...ありがちなのは...
①「LD_LIBRARY_PATH」のスペルが間違っている。
→目的の共有ライブラリが読めていない。
②apacheの設定でTLS1.2が有効になっていない。
→SSLProtocol
といったところでしょうか。
うまく動作する事を願っております。