インフラまわりのエンジニアをしていると、他社ベンダーとか前任者の構築した環境を引き継いだけど、資料も設計図もなくてよう分からんが、とりあえず最低限の運用をしないといけない場合があるかもしれません。
SSL証明書のインストールをしても「保護されていない通信」と出る場合は絶対パスかTLSを確認しよう
私は業務で色々なお客さんのウェブサーバーの管理をしているのでウェブサイトにSSLの設定をする機会が多いのですが、たまにいつも通りの手順でSSLの設定をしても「保護されていない通信」と出る場合があります。証明書のインストールは完璧にできている場合、残る可能性は以下の通りです。
- HTMLにhttpから始まる絶対パスで記述された外部ファイル(画像とかJSとか)がある
- 外部CSSに絶対パスで記述された画像の読み込みがある(backgroundとか)
- サーバーのTLS1.2が有効でない
CentOS6でTLS1.2を利用可能にする手順(SSLの有効化)
画像の絶対パスなどは地道に修正すればいいだけなので簡単です。今回はサーバーがCentOS6系であることを前提に、TLS1.2を有効にする方法を整理します。簡単です。
https://globalsign.ssllabs.com/index.html
まずTLSが有効であるのかチェックしましょう。このサイトでTLS1.2が有効なのかそうでないのか確認できます。
では手順を紹介します。まずCentOSのバージョンを確認しましょう。5系、6系、7系ではそれぞれ手順が違うので注意が必要です。
CentOS release 6.9 (Final)
上述の通り今回はCentOS6系です。次にnssのバージョンを確認しましょう。NSSのバージョンが3.19.1-6以降であればTLS1.2が有効となります。ちなみに「NSSって何?」という人はちゃんと調べて勉強しましょう。エンジニアは意味を理解していないコマンドを打ってはいけません。
このコマンドを打って下記のような結果になる場合は、また別の対処が必要となります。
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/extras/mirrorlist.txt
これはCentOS6系のサポート終了によるエラーで、yumのリポジトリを編集する必要があります。
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
元からあるmirrorlistとbaseurlをコメントアウトし、上記の例の最下行のように別のbaseurlを追加する。ちなみにこれはさくらVPSの例です。[base]、[updates]、[extras]、[centosplus]など全て修正する。
さて首尾よくいくと、nssのインストール済みパッケージが
リリース : 3.el6_9
利用可能なパッケージが
バージョン : 3.44.0
こんな感じで、現在のバージョンとダウンロード可能なバージョンが出ます。この場合は現在のバージョンが3.19.1-6未満なので、TLS1.2は有効でありません。バージョンアップすばれTLS1.2が有効となります。サーバーの再起動も不要なのでかんたん、かんたん。
ちなみに仕様が分からない場合のミドルウェアのバージョンアップは怖いので、万一に備えてバージョンを戻すことができるも確認したいという場合は、以下のようにコマンドを打てばいいでしょう。ま、ディスクイメージなどがあれば復旧できるのでいいのですが、無い場合は危険かもしれません。
#yum –showduplicate list nss
読み込んだプラグイン:fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ty1.mirror.newmediaexpress.com
* extras: ty1.mirror.newmediaexpress.com
* updates: ty1.mirror.newmediaexpress.com
インストール済みパッケージ
nss.x86_64 3.28.3-3.el6_9 @updates
利用可能なパッケージ
nss.i686 3.36.0-8.el6 base
nss.x86_64 3.36.0-8.el6 base
nss.i686 3.36.0-9.el6_10 updates
nss.x86_64 3.36.0-9.el6_10 updates
nss.i686 3.44.0-7.el6_10 updates
nss.x86_64 3.44.0-7.el6_10 updates
バージョンを指定せず、パッケージを一つ前のバージョンに戻したい場合は、以下のようにコマンドを実行することでダウングレードができます。
#yum downgrade パッケージ名
もしくは、バージョンを指定させる場合には以下のようにコマンドを実行するとダウングレードできます。指定できるバージョンについては、「yum –showduplicates list パッケージ名」で確認すればいいです。
#yum downgrade nss-nss.x86_64
ではNSSのバージョンアップを実行します。たぶんすぐ終わります。瞬殺。
この時点でTLSは有効ですが、ウェブサーバーでssl protocolsが有効かどうか確認しましょう。nginxの場合はSSLを適用したserverブロックなどに以下のような記述が必要です。apacheの場合ももちろん事情は同じです。
最後にウェブサーバーを再起動しましょう。ね、簡単でしょ?