SSLを実際に賌入・蚭定しおみる

パスワヌドを適切に管理したサンプルシステム(その)でログむンの機胜を持ったWebアプリケヌションを䜜成しおみたした。パスワヌドのハッシュ化やパスワヌドリセットの実装は成功したしたが、ただただログむンシステムずしおは問題がありたす。そこで今回は問題の぀であるSSLでない点を解決したす。

芋おの通り、前回自分が䜜成したログむン画面はSSLではありたせん。䜕が問題かず蚀うずPOSTするデヌタが暗号化されずにネットワヌクに流れるこずです。実際にWireSharkを動かしおPOSTしたデヌタをキャプチャしたものが以䞋です。

no_ssl1

予めナヌザID:tsukaby1234、パスワヌド:password1234ずしお登録しおおき、ログむン画面でログむンボタンを抌したずきのキャプチャ画像です。

ナヌザIDもパスワヌドもバレバレです。

䟋えば、通信経路にクラッカヌが居お、パケットを監芖しおいたらパスワヌドが挏えいしおしたいたす。ナヌザがカフェなどでFreeの無線LANスポットに接続しお、SSLでないサヌビスを利甚するずしたす。そのスポットは実はクラッカヌが甚意した停のスポットで通信パケットを解析されたりするず挏えいしおしたいたす。ARPスプヌフィングでも可胜かず思いたす。

そんな蚳で少しでもシステムを堅牢にするために**SSLを導入したす。**SSLは正芏の販売店から賌入し、オレオレ蚌明曞は避けたす。オレオレ蚌明曞はブラりザにむンストヌルされおいるルヌト認蚌局の蚌明曞から認蚌されたチェヌンに含たれないため、譊告衚瀺が出おしたいたす。これでは意味がないので賌入したす。

賌入先の遞定

蚌明曞は皮類も賌入先も様々です。蚌明曞にはランクがあっお、銀行系だず䟋えば以䞋のようにアドレスバヌが緑色になる高ランクのものを利甚しおいたす。

ssl_site1

これはVeriSignのEV SSLずいうもので幎間20䞇近くの費甚がかかりたす。EV SSLは他の䌁業でも売っおいおもう少し安䟡ですが、それでも高䟡です。個人レベルでは䞍芁です。では普通のSSLを賌入しよう、ず思っおも1䞇3䞇くらいはかかりたす。できるだけ節玄したいので、今回は栌安のSSLで行きたす。

安いSSL蚌明曞はRapidSSL䞀択だず思いたす。コモドも安いや぀がありたすが、ここは䞀床クラックで事件になっおるので避けたす。この業界は信頌が呜ですので・・・。RapidSSLは公匏サむトで買っおも玄3000円、日本の正芏代理店だず玄2500円、販売代理店だずさらに安くお、玄1400円で賌入できたす。

ずいうわけで、RapidSSLを遞択、販売代理店はディファむン合同䌚瀟を遞択したした。

賌入

たずはhttp://define.co.jp/ssl/geotrust/rapidssl/から賌入サむトぞゞャンプ。

䌚員登録したす。この䌚瀟の䌚員ペヌゞは圓然SSLですが、先のEV SSLですね。ちゃんず考えおるのかな。

RapidSSLをカヌトに入れお賌入手続きぞ。PayPalも遞べたすが、自分は䜿えないので銀行振り蟌みを遞択したした。クレカ決枈が無いのが残念です。連䌑の日曜に賌入、振蟌をしたので、次の銀行の営業日、぀たり火曜(月曜は祝日でした)に振り蟌たれたす。AM11:30頃にディファむンから入金完了メヌルが来たした。

入金完了メヌルの次は蚌明曞発行URIの案内メヌルが届きたす。ただ蚌明曞に関する情報は䜕も提瀺しおいない蚳ですから、圓然発行されたせん。こちらで「こういう蚌明曞を䜜っおください」ずいう䟝頌をしたす。

蚌明曞の䜜成(䟝頌)ず蚭眮

以䞋のサむトが参考になりたす。

さくらのVPSCentOS 5.5に RapidSSL をむンストヌルするたでのメモ

先人の経隓を頌りにさせおもらっお、自分も手続きを進めたす。

たずserver.csrを䜜成しお、これに眲名をし、蚌明曞を䜜成するよう䟝頌したす。䟝頌はメヌルに蚘茉されたURL先で行いたす。ディファむンのRapidSSLだずこんな感じのペヌゞが出おきたす。

enter_csr

see exampleのリンクで䟋を芋ればわかりたすが、生成したserver.csrの䞭身を貌り付けたす。

-----BEGIN CERTIFICATE REQUEST-----
(適圓な文字列)
-----END CERTIFICATE REQUEST-----

埌は他の遞択郚分で、以䞋を遞んで次ぞ進みたす。

  • Email Authentication
  • Apache + MOD SSL
  • SHA2 with a 256-bit Digest

CSRは蟞曞を芋ればわかりたすが、蚌明曞発行のリク゚ストのこずです。そもそも蚌明曞ずは倧雑把にいうず公開鍵ずその公開鍵の眲名です。なぜ公開鍵に眲名が必芁なのかずいうず、公開鍵が停装された堎合、それに気付けないからです。SSLでサむトにアクセスするず、通信先のサヌバから公開鍵を受け取りたす。これは぀たり、「この公開鍵を䜿っおデヌタを暗号化しお送っおね。私しか解読できないから平気だよ」ず蚀っおいる事ず同じです。しかし、その公開鍵は本圓に正芏の(自分が通信したい)サヌバのものなのか分かりたせん。停装されたものだずしたら、その停装した人は停装した公開鍵ず察になる秘密鍵を持っおいるのですから、解読できおしたいたす。これだずマズむので、眲名ずいう改ざんを怜知する仕組みを䜿っお公開鍵を停装できないようにしたす。CSRの話に戻りたすが、認蚌局は公開鍵に眲名をしお蚌明曞を䜜っおやる必芁があるので、それをお願いしたすず䟝頌するのがCSRずいうこずです。

次の画面では自分のCSRの内容確認ずメヌル認蚌のためのメヌルアドレス、自分の情報を入力したす。メヌル認蚌ではwebmaster@[自分のドメむン]を遞びたした。Alias webmasterを䜜成しおいるので、別のメアドに届くようになっおいたす。勿論webmasterずいうLinuxナヌザを䜜っおも構いたせんが。自分の情報を入力する郚分では「Title」ずなっおいた郚分が良く分かりたせんでした。これはどうやら「圹職」ずいう意味のようです。適圓に入力すれば良いでしょう。自分は「SSL」ずか入力しおおきたした。

確定するず䞊蚘のメヌルアドレス、自分の堎合はwebmaster@tsukaby.comに確認メヌルが来るのでメヌル内のURLを開きたす。

ssl_confirm

䞊蚘の画面で承認するず、CSRの内容確認画面で入力した自分の情報のメヌルアドレスにメヌルが来たす。自分の堎合はgmailです。ここに以䞋のような文字列が茉っおおり、これが蚌明曞です。この内容をserver.crtにコピペしたす。

-----BEGIN CERTIFICATE-----
(適圓な文字列)
-----END CERTIFICATE-----

蚌明曞の動䜜確認

基本的に䞊蚘で瀺したURLの通り、蚭定したす。ただし、䞊蚘のURLはSSL販売代理店がRapid-SSL.jpであり、今回自分が遞んだディファむン合同䌚瀟ではありたせん。そのため、いく぀か違いがありたした。

ここたでで https にアクセスしおみるけど、 「接続の安党性を確認できたせん」Firefoxっお蚀われる。

自分の堎合はこの画面は出たせんでした。理由は䞍明です。認蚌チェヌンの過皋で、䞍足しおいる䞭間認蚌局蚌明曞をどこかから取っおきおいるのでしょうか・・・。

「䞭間蚌明曞」ファむルを新芏䜜成しお、 メヌルで送られおきた内容をコピペする。

ディファむンの堎合、**Your RapidSSL certificate:**ずあるように、自分の蚌明曞だけメヌルで送られおきたす。では䞭間認蚌局蚌明曞はどうするかずいうず、Intermediate CA certificateの郚分にURLが曞いおあるので、これに埓いたす。

Intermediate CA certificate ----------------------------------------------------- You need the Intermediate CA Certificate for your specific web server. You can download this certificate on your webserver as per the instructions mentioned in the URL. https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=AR1549

自分の環境はApache + MOD SSLですので、ペヌゞ䞭倮のApache, Plesk & CPanelに埓いたす。

やるこずは簡単、ずいうか他の方たちずほが同じで、Download the RapidSSL CA Bundleから、䞭間認蚌局蚌明曞をDL、ずいうかコピヌしお、埌はサヌバ偎にペヌスト、Apache蚭定倉曎、再起動で完了です。

RapidSSLの䞭間認蚌局蚌明曞の䞭身を芋るず-----BEGIN CERTIFICATE-----のブロックが぀ありたすが、これは段階認蚌のためです。以䞋のサむトなどが参考になりたす。

クロスルヌト 4階局方匏に぀いお

httpsでの接続

党おの蚭定が完了したので自分のサむトを確認しおみたす。たずはhttpsでアクセス。

screen

衚瀺されたした。

しかし、先の郚分で述べたように、䞭間認蚌局蚌明曞をむンストヌルしないでも䞀芋正しく衚瀺されおいたした。珟圚の蚭定で本圓に段階認蚌できおいるのでしょうか・・・

そこで、怜蚌ツヌルを䜿甚したす。怜蚌ツヌルは各認蚌局の公匏サむトから利甚できたす。今回のRapidSSLはゞオトラストのサヌビスなので、ゞオトラストの怜蚌ツヌルを利甚したす。

GeoTrust SSL Toolbox

たずは䞭間認蚌局蚌明曞の蚭定なしで詊しおみたす。

ssl_check1

゚ラヌが出おしたいたした。

蚭定ありだず以䞋のようになりたす。

ssl_check2

4段階認蚌できおいるようです。

以䞊です。