番外編 - 常時SSL化の概要

番外編
e-Gadget


2018/08/03
更新 2018/10/17


当ブログの常時SSL化を行ったが、その時に得られた知識を簡単に整理して自分の備忘録として残しておく。

私自身はあまり理解していなかったので、ネット検索で調べながら作業した。もし、事前に全体の知識があれば、もっと落ち着いて楽に進められたと思うので、SSL化の概要を俯瞰できるような記事にする。なお、この記事が読者の方に役立つことが少しでもあれば嬉しい。より詳しいところは、各自で検索して補足頂きたい。

[2018/10/17] Chrom70公開に伴い追記・更新


そもそも常時SSL化って何だ?

インターネットで通信を暗号化する仕組みをSSLと言う。この仕組みができると、通信は FTTPSプロトコルとなり、URLの始まりが fttps となる。末尾の s は Secure の s。セキュア(Secure) とは安全のこと。SSLの仕組みが大雑把でも分かっていると、SSL化作業の見通しが良くなり、個々の作業の意味と目的が分かって、作業が楽になる。

SSLの仕組みには大きく2つある。1つは「暗号化通信」で、もう1つは「サーバーと運用者の正当性証明」

通信が暗号化されれば、データの盗聴が難しくなるので安全になる。暗号化通信に使う公開鍵、コモンネーム(FQDN)、ドメインの所有者情報を紐付けて、第三者(認証局)がSSLサーバー証明書を発行する。

サーバーとクライアント(Webブラウザ)がSSL通信する時にSSLサーバー証明書を使う。クライアントはサーバーからSSLサーバー証明書を受け取り、サーバーのFQDNと証明書に含まれるコモンネームを照合し、その一致を確認する。一致していれば、サーバーと通信しようとしているクライアントは、ドメイン所有者が運営しているサーバーだと確認できる。つまり、正当性が保証された相手と暗号化通信をしていること確認しながら安心して接続できる。なりすまし防止(フィッシングサイトの防止など) に役立ち、暗号化通信が安全になる。

最初に1994年に SSL 2.0 が公開された。1年後に安全性の問題が見つかり SSL 3.0 が公開され、これが長らく使われていた。2014年に暗号化通信の解読ができることが分かり、SSL 3.0 利用が禁止された。今は SSL をより安全にした TSL が使われている。現在は 1996年に公開された TSL 1.0 を使う。しかしSSLが長らく使われ、一般人向けの用語としてSSLが定着しているので、今でも SSL化と呼ばれる。或いは SSL/TSL化や https化とも言われる。

なお、重要な情報を入力させるページに限って以前からSSL化が行われてきた。それに対して、今はサイトを構成する全てのページでSSL化することが要求されていて、それを常時SSL化という。


SSL化作業に必要なこと

SSLサーバー証明書の取得
・ドメイン認証のみの証明書: ドメイン使用権の確認。無料か低価格で提供され、個人サイト向け。
・企業実在性認証の証明書:ドメインと運営団体が実在していることの確認。信頼性高い。
・EV認証の証明書:サイト運営団体の厳格な確認。信頼性高く、高額。

個人ブログや個人ホームページは、契約している業者のサービスにSSL設定サービスがあればそれを使う。すると証明書発行まで行ってくれる。大抵ボタンクリック1回で完了となる。無ければSSL化を諦めるか、SSL設定サービスのある業者に乗り換える。

証明書には有効期限があるので、期限切れになる前に忘れずに更新するか、自動更新の設定が必要。

SSL設定
SSL設定サービスがある場合は、大抵ボタンクリック1つで設定完了。しかしこれだけでは常時SSL化は完了しない。
多くのサービスではリダイレクト設定もできる。リダイレクト設定には301リダイレクトと302リダイレクトがあり、大抵どちらかを選択できる。

リダイレクト設定
SSL設定サービスには、たいていリダイレクト設定がある。新たにブログやホームページを開く時は、最初からSSL化して作れば良い。一方、既に有るものをSSL化する場合は、検索ページからアクセスされたり、ブックマークからアクセスされる時は http のURL にアクセスされ、ページが見つからないとなる。そこで、http ページへアクセスされたときに https ページに自動転送するためにリダイレクト設定が必要。

多くの場合、恒久的転送の 301リダイレクトと一時的転送の 302リダイレクトを選択できる。301リダイレクトは検索サイトでのランキングなどのこれまでのサイト評価が引き継げるが、元に (httpプロトコル)には戻せない。ブログやホームページの中でSSL化されていない外部サービスを使っている場合、SSL化の確認や他のサービスに切り替える必要があり、その間は仮にリダイレクトし、万一の場合は元に戻せるために 302リダイレクトを使う。302リダイレクトではこれまでのサイト情報は引き継がれない。作業中は 302 リダイレクトにしておき、最終的に 301 リダイレクトにすると良い。

もしボタンクリックで簡単にできるリダイレクト設定が準備されていない時は、.htaccess ファイルにスクリプトを書いて 301リダイレクトか302リダイレクトを記述すれば良い。詳しくは、利用しているサーバーのQ&Aか検索で解決する。私自身もネット情報を参考にして、とあるサーバーについては .htaccess ファイルで301リダイレクトの設定ができた。

リンクの設定変更
各ページにある画像ファイルへのリンクやサイト内の他ページへのリンクは、頭の http:// を https:// に書き換える。スクリプトやCSS(スタイルシート)、WordPressなどの記述にある http 参照部分も https に書き換えておく。サイト内リンクのどこかに暗号化されない FTTPプロトコルでの参照が含まれる時点で、安全性が崩れるのでこの書き換えを行なって、サイト内リンクはFTTPSプロトコルにしておく必要がある。

外部サイトへのリンク
単に外部サイトへのリンクを記述している場合は、URL参照の部分が http:// で始まっていても自身のサイトのSSL化に影響はない。外部へのリンクをFTTPプロトコルで呼び出しても、自分のサイトに戻らないので構わないわけだ。

 アマゾンなどの外部リンクのあるバナー
ブログランキング、アマゾン、楽天などの外部リンクのあるバナーもSSL対応する。それぞれのサービスごとにSSL化するための html 設定を改めてコピー&ペーストする。SSL化対応していない場合は、貼り付けるページをSSL化できないので、代替え策を考える。

ブログやホームページサーバーごとの違い
本質的な違いは無いと思うが、それぞれの細かい違いがあればサービス業者のホームページで確認する。


SSL化の必要性

何故SSL化するのか?

最近皆がやり始めているから?
まぁ、ネットの世界の流れはSSL化なので、それには沿ってゆくのは間違っちゃいない。でも作業が面倒。SSL化を有償で請け負うビジネスも登場している。自分でやれるならやってみる...

SEO対策になるから?
Googleが、SSL化されたサイトの優先度を上げる可能性を公言しているので、これは大きな動機になる。

安全でないと表示されると訪問者に良い印象を与えないから?
会社のホームページならこの問題は大きい。個人サイトでもこれは気になるかも知れない。


Google Chrome の対応の変化

SSL化に対して厳しく対応しているのが Google で、Google Chrome は安全性が保たれないと判定した場合は、「保護されていません」と表示するようになっている。他のブラウザもいずれ追従するだろうが、今は Chrome に対応しておけば良さそうだ。

SLL対応がOKと判定されると、鍵のマークと一緒に「保護された通信」と表示される。

 eGadget_Protecte 


Chrome 62 (2017年10月)
SSL化が不完全な場合、

殆どの場合、チョット控えめに

 i_mark 

i マークのみの表示。

但し、入力フォームが有るページで、<input> タグtype属性に "text", "tel", "email", "search", "url" とある時

 Not_Protected 

と明確な警告を出していた。


Chrome 67 (2018年7月)
それまで、SSL化が不完全で

 i_mark 

と表示されていたページでも

 Not_Protected 

と表示されるようになった。

但し、

 i_mark 

i マーク表示だけで「保護されていません」とは表示されないケースもある。どのような条件で、このような i マークだけの表示なるかは、まだよく分かっていない。当ブログ以外に、複数のホームページの常時SSL化を進めているが、この状況を経験している。

Chrome 70 (2018年10月) (2018/10/17更新)
あと2ヶ月ほどで、さらに表示が厳しくなるとのこと。
「保護されていません」と判定される時の表示が、さらに悪印象を与えるようになる。

2018/10/16 に Chrome 70 にアップデートされてみると、事前情報とは逆にグレーでの表示になり、地味になった。

・常時SSL化されている
 scure_Chrom70 
・常時SSL化されていない  
 unsecure_chrom70 
・完全に常時SSL化されていない
 mid-secure_chrom70 

将来は完全SSL化が当たり前になるので、今後は鍵マークも無くしてゆくらしい。
逆に完全SSL化していないと、「保護されていない通信」という余計な文字列が表示されることで、暗号化されていないことが明示されるわけだ。

一応、段階的に警告度合いを引き上げているわけだが、ここまで強烈に警告されると、却って悪いヤツラのターゲットになる心配も出てくる。逆に言えば、被害に遭うまでに常時SSL化しておいたほうが良さそうだ。



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: ホームページ、ブログ、SSL、TSL、https

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

プログラム電卓を実際に使って気づいたこと、自作プログラム、電卓での Casio Basic, C.Basic そして Casio Python プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではありません。いつでもどこでもプログラミングができるプログラム電卓が好きな1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR