1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さすがに無いと思うが、古いLinuxを使っててTLS1.2に対応できない対処方法

Last updated at Posted at 2020-04-03

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で共有ライブラリを設定。下記のファイルを新規で作成したパスを追加。

/etc/ld.so.conf.d/openssl.conf
/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

設定ファイルを修正。追加だけ書いておきます。

/usr/local/apache2/conf/httpd.conf
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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?