リバースプロキシによるTLS 1.0/1.1の無効化対応

ついに今月中にIE以外のほとんどの主要ブラウザでtls1.0、1.1のみしか設定されていないwebサイトが閲覧できなくなるようです。
IEも2020年上半期中には見れなくなるぽいですね。

なんでTLS1.0/1.1が無効化されるの?

以前から脆弱性が指摘されており、IETF(InternetEngineeringTaskForce)が1.0と1.1を非推奨とし、脆弱性が見つかってももう直さない宣言したことから、
各ブラウザがTLS1.0/TLS1.1の通信を無効化することになったようです。

TLS1.0/1.1の無効化による影響は?

閲覧できなくなります
怖いですね。その日はある日いきなり訪れるでしょう。

どうすればいいのか

TLS1.0/1.1の無効化及び1.2の有効化しましょう。方法は調べればいくらでもでてきます。
しかし実はとても恐ろしい罠があります。
TLS1.2を有効化するには、apache2.4系である必要があるのです。
サポートが終わっているredhat5とかだとupdateできないんですね。。ましてやapache2.2でしか動かないプログラムを使用している場合など。。
まあサポート切れてるのに稼働してるのがそもそもまずいのですが。

どうすればいいのか2

リバースプロキシさせてしまいましょう。
以下簡単な手順です。詳細なやり方は調べればでるので省きます。

1. リバースプロキシサーバの設置

適当なスペックのサポートが切れていないOSのサーバを立ち上げ、以下を行います。
1. apache2.4いれる
2. opensslもいれる
3. もとのサーバのSSL証明書を設定
4. 一旦apacheデフォルトページが表示されるか確認

2. IPのつけかえ

もとのサーバのIPをリバースプロキシサーバへ割り当てます。
そしてもとのサーバへは新しいIPを割り当てましょう。

3. リバースプロキシの設定

# 「conf.d」ディレクトリ配下の「**.conf」ファイルは自動でapacheが読みます。
vim /etc/httpd/conf.d/proxy.conf
ProxyPreserveHost On
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
ProxyPass / https://{2.でもとのサーバに割り当てたIP}/

4. 表示確認

IE以外のブラウザでドメインでアクセスし、元のサーバのSSL証明書が設定されている & 有効な証明書となっていることを確認しましょう。

これでDNSのレコードを変更することなく、TLS対応完了です。

あつまれ どうぶつの森 -Switch

あつまれ どうぶつの森 -Switch

  • 発売日: 2020/03/20
  • メディア: Video Game

javascript 正規表現 IEエラー

改行も含めて一定文字数以上あれば、文字列切って「...」をくっつける という3点リーダーの実装。

IEではフラグを使用する場合、リテラルの場合大丈夫なのに、RegExpコンストラクターだとエラーになる。。

OK

replace(/^(.{2}).+$/s,'$1...')

NG

replace(new RegExp(`^(.{${TEST}}).+$`, 's'),'$1...')

検証した結果、どうやら「s」「u」「y」のflagsが使えない模様。 変数をパターンに含めるのはリテラルでは実現できないので、フラグを使わずパターン自体を改行コードも含むように修正。

なんでかは結局わからず。。調査次第追記予定

知っている人いたら教えてほしいです。

あつまれ どうぶつの森 -Switch

あつまれ どうぶつの森 -Switch

  • 発売日: 2020/03/20
  • メディア: Video Game