2017年3月21日火曜日

MyDNS と Let's Encrypt を使って,FreeBSD 上の apache24 を https 化してみた(その5)

 FreeBSD 上の apache24 で運用している個人サイトの https 化(通信の暗号化)の話の(その4)である。
目次
 (a) その1:MyDNS を使って web サーバーをたてる
 (b) その2:オレオレ認証を使った https 化
 (c) その3:Let's Encrypt を使ったサーバー認証
 (d) その4:vhost や ssl などの apache24 の設定
 (e) その5:サイトの内容に関する注意点(今回,最終)

 今回はセキュアなサイトを作る際の注意点について書こう
何を書きたいかというと,apache で https: 化を行っても,内容の記載によってはサイトが安全とはならない場合があるので,そのあたりについて書こうと思う。

 ここまで,web サイトの通信の暗号化の技術的な面について書いてきたが,内容によってはサイトが「安全ではない」とされてしまうことがあった。 私も,個人のサイトで暗号化をして,一番簡単なテストページならブラウザに誉めてもらえるようになったが,いざ肝心なページを見に行くと, この接続は安全ではありませんだの一部が安全でないためブロックしましただのと言われてしまうことがあった。

 例えば Firefox の場合,この接続は安全ではありませんと言われる場合は,下の画像のようにアドレスバーの左の鍵マークが灰色+黄色の警告マークになる。
 ここで,右向きの矢印(不等号?)をクリックすると,下記のように言われる。
 ここで「詳細情報」を選んでも,Mozilla かどこかのサイトでの一般的なことしか教えてくれない。
内容としては,ページ内に危険な画像などが含まれているから危険,ということしかわからない。
具体的にどのファイルが悪い,ということがここからはわからない,のである。

 安全な場合はどうなるかというと,鍵マークが緑色になる。 鍵が緑色になれば一安心ということになる。
しかし,これが曲者で,下記のように鍵マークをクリックすると,完全には安心とは言えない,というパターンもある。
 ここでも右矢印をクリックすると,以下のようなことを言われる。
 どうやら,安心ではない要素が含まれたけど,ブロックしたから今は安全だ,ということみたい…。
何が悪いの?どこが問題?と言いたくなる表示である。

 このような場合に頼りになるのが,Firefox ならAltキーを押したら出てくるメニューバーの中の「ツール」→「ウェブ開発」→「ウェブコンソール」である。 ウェブコンソールを表示させた状態(ブラウザの下1/4ぐらいがコンソールに占領される)で,問題のページを読み込み直すと,いろいろな情報を表示してくれる。

 例えば,最初の鍵に黄色の警告マークが表示される時には,下記のようなものが出ていた。
 この例は,OpenLayers を使って地理院地図を表示させたもので,わざとエラーが出るように「https:」ではなく「http:」になるようにしたものである。 つまりは,暗号化されてないサイトから大量に画像を取ってきて表示させている,ということで「危険」と判断されたみたい。

 次は鍵マークが緑色だけど,安全じゃないと言われた時のウェブコンソールの表示である。
 ここでは Google API を使うために Google API キーを設定しているのだが,上記と同じようにわざと「https:」ではなく「http:」と書いてみた。 この場合は読み込みがブロックされたみたい。 そのため,危険はないけど,一部が読み込まれていない状態になっている,ということみたい。

 見てきたように,apache としては Let's Encrypt でサーバー認証を受けていても,コンテンツの中に安全でないものが入っていると,そのページは全体としては「安全ではない」となってしまう。 私の場合には,上記のように,JavaScript や CSS ファイル,API などのファイルを暗号化されていないサイトから取ってきていた,というパターンが多かった。
他には,地図を表示させるサイトで,暗号化されていないサイトから地図情報を取ってきていた,というのもアウトだった。
また,地図上に経路を表示させたり,アイコンを表示させるのに KML 形式のデータを読み込ませていたが,その中でアイコンの URL が http: だった,というものもあった。

 みなさんも,apache 自体の設定ができているのにページが安全ではない,と言われたら,中に「http:」という文字が含まれていないかを調べた方がいいかもしれない。

0 件のコメント: