会社のサイトを常時SSL化した時に苦労した話
最近、Googleが常時SSLで接続するように推奨していることもあってうちの会社のサイトも常時SSL化しようということになった。
SSLって何?って人はhttps://www.sslcerts.jp/などでわかりやすく説明されているので確認して欲しい。
簡単に説明すると通信を暗号化して悪い人に覗き見されたり、改ざんされたりしないようにするのがSSLというものである。今見ているサイトがSSL化されているかどうかはブラウザの上にあるアドレスバーのところが鍵マークになっているかどうかで判断できる。
基本的にメールアドレスとか個人情報をフォームに記入して送信する時に鍵マークの無いサイトだとかなりリスクが有ると考えておいたほうが良いだろう。このサイトにも一応簡易的なものを入れてある。(SSLには種類がいくつかあって銀行などはかなり現住なSSLが使われている)
そんなSSLなのだがSSL化するとどうなるのか?なぜトラブルのか?ちょっと今回トラブった話を実例に紹介してみたい。
SSL化するとhttp://がhttps://に変わる
これはアドレスの頭に付く文字列にSがつくだけなのであるがこれがかなり面倒なことを引き起こす。
SSL化してこれまでhttp://で表示していたサイトをただ単にhttps://にしたらサイト内に読み込んでいたCSSやJSの読み込み元がhttp://から始まるアドレスだった場合、SSLと非SSLが混在したサイトとされてエラーが出て保護された通信と認められない。
これを1ページずつソースを見てhttp://から始まる読み込み元が無いか探さなければならない。ページ内検索をかけて調べるわけだが面倒な作業である。
もう面倒すぎてヘッダーとかで読み込まれているGoogleAPIとかのソース部分をPHPのインクルードで全部一箇所で管理することにしてそれを全ページに反映する作業で一日費やした…。しんどい。
インクルードしてみたらCSSが足りてないとかで修正が必要だったり無茶苦茶めんどかった・・・スマホ用がまた別とかも多かった。かなりカオスなページ作りをしていたのが今回でだいぶスッキリ出来てよかったと思っている。
http://でアクセスされた時にhttps://に自動的にリダイレクトする処理がうまく動かない
これに関してはhtaccessを使ったのであるがサーバーによってどうも書き方が違うらしく適当にリダイレクトする方法をググって調べただけではダメだったらしい。
普通にページが表示できなくなってリダイレクトのループが発生していますと警告が出た…。書き方は3種類ぐらいあったので今回使っていたレンタルサーバーがさくらのサーバーだったので「さくらサーバー リダイレクト htaccess」などのキーワードでググって見つけた書き方で試したらなんとか動くようになった。
ニュースの読み込みに使っているPHPが動かなくなる
httpsにリダイレクト出来て一安心ということでちゃんとエラー吐かずに動いてっかな?って見てみたらNEWSページを自動的に表示するPHPファイルを読み込んでいる部分が非表示に!!
壊れたかと思ってhtaccessを元に戻すとちゃんと動く。
ってことはphpの書き方がおかしいってことなので調べてみたらなんか読み込みアドレスがもう根本的におかしくて今までよくこれで動いてたな・・・って感じのソースになっていた。普通にテストサーバーのアドレスでそれをリダイレクトかけて表示せててそりゃhtaccessでリダイレクトかけたらループするわっていう感じでした・・・。
SSL化で疲れた話
今回は実は会社のSSLが2月で契約切れになっていてお問い合わせフォームにアクセスすると警告が表示されてアクセスできないとかいう最悪の状況が起こり、その対策の一環としてかなりバタバタしながらやったわけである。
ホント疲れた…。前回おそらく4年ぐらい前に今のサイトにリニューアルしてからかなり色々と継ぎ足し継ぎ足しで作られていた老舗のタレみたいになったなんとも味わい深いソース(タレだけに)が見れて良かったような見たくもなかったような…。
実はまだまだ問題点は洗い出されているのであるがそれに手を付け始めるとまさにサグラダファミリアのように終わらない建設工事になりかねないので上司の判断で暫くの間封印されることとなった…。予算があればいいんだけど自社サイト触っても売上にならないからこんなところに時間を取られたくないってのが本音なんだよね。
SSL化は古いサイトほど苦労するのでやるなら早めにしておくべきである。
コメントを残す