SSL(https)の通信の暗号化以外の役割

こんにちは東京Kです。

最近はどうかわかりませんが、一昔前までは「SSL(HTTPS)は通信の暗号化のためのもの」と思われている人が多かったですね。
今日は「SSLの醍醐味は暗号化だけでは無いよ」というお話。

最初に書いたとおり「SSLはショッピングサイトなどで通信の盗み読みされないように暗号化するもの」というのは広く知られていると思います。
一方で「SSLはアクセスしたサイトが正当なものであることを証明する仕組みも持っている」ことはあまり知られてないと思います。

今回も詳しい仕組みは割愛しますがSSL、つまり、例えば https://www.webimpact.co.jp/ 等にアクセスした場合、ブラウザが何にも警告を出さなければ「www.webimpact.co.jp」のサーバーに間違いなくアクセスできたという証明になります。

ブラウザが警告を出すならば、なりすましをした別のサーバーに接続されている可能性が非常に高いといえます。

そのため、偽サイトにつながらないようにするためにも、SSLで通信をして、URLが正しいかを確認する癖は付けた方が良いですね。特に銀行など重要な情報を入力するサイトにアクセスするときには、是非覚えておいて欲しい知識です。

ただ「正しいURLを覚えてられないよ!正しい綴りがwebimpactなのか、webinpactなのかわからない」という方も多いと思います。
ただ、こればかりは、アクセスする正しいURLが何なのかは、あらかじめ何らかの方法で知っておく必要があります。

ただ、一つだけいえるのは「.go.jp」でドメインの記載が終わり、SSLでアクセスできていれば「国の機関のサーバーに間違いなく接続できた」という証明になるので、これは覚えておくと良いでしょう。

以上、身近なITに疎い方にフィッシングサイトの見分け方を、よく聞かれる東京Kがお送りしました。
ではまた。

追記:
なお、レアケースとも言いがたいですが「正しいサーバーが攻撃者に乗っ取られている場合」や「アクセスしようとしているサイトのドメインの所有権自体を乗っ取られている場合」は、正しいURLでSSLも問題なくても攻撃者のサーバーにつながるので、どうしようもないです。

SSL証明書を更新するときにチェックに役立つコマンドまとめ

すっかり秋めいてきて、ご飯が美味しい季節になりましたね、shige でございます。

さて、今回はSSL証明書を更新するときにチェックに役立つコマンドをまとめてみました。
この手順に沿って、サーバーに新しいSSL証明書を置き換えれば、きっと証明書と秘密鍵の不整合で Apache が起動しないなんてトラブルも逃れられるはず!

1. 秘密鍵とCSRの作成

まず、お馴染みの openssl コマンドでサクッと秘密鍵とCSRを作成します。

$ openssl req -new -newkey rsa:2048 -nodes -keyout www.webimpact.co.jp.key -out www.webimpact.co.jp.csr

2. 認証局へ提出

次に、いつもお世話になっている認証局にCSRを提出しましょう。

3. サーバーに証明書と秘密鍵を設置

認証局から証明書を発行してもらえたら、サーバに「SSL証明書」と「秘密鍵」を設置します。

SSL証明書や秘密鍵を正しい組合せで設置できているかは、下記のコマンドで確認できます。

正しい組合せなら、出力結果が全て同じになるはずです。

もし、違う場合は、Apache 再起動時にエラーになってしまい、サービスを停止させることになってしまうので、がんばって正しい組合せで設置しましょう。

$ openssl x509 -noout -modulus -in www.webimpact.co.jp.crt | openssl md5
e6fs34fvgs4sg6df3t0eh3453h531h35
$ openssl rsa -noout -modulus -in www.webimpact.co.jp.key | openssl md5
e6fs34fvgs4sg6df3t0eh3453h531h35
$ openssl req -noout -modulus -in www.webimpact.co.jp.csr | openssl md5
e6fs34fvgs4sg6df3t0eh3453h531h35

また、証明書の期限も確認しておきます。

$ openssl x509 -in www.webimpact.co.jp.crt -noout -dates
notBefore=Jun 20 10:51:23 2012 GMT
notAfter=Aug 22 14:35:30 2015 GMT

他にも下記のコマンドで、証明書の内容を確認することができます。

$ openssl x509 -in www.webimpact.co.jp.crt -text

次に、Apacheの設定ファイル httpd.conf を編集した場合は、サーバを再起動する前に設定ファイルの文法チェックを行います。

$ apachectl configtest
Syntax OK

httpd.conf が問題なさそうでしたら、最後に Apache を再起動します。

$ httpd restart

4. ブラウザから確認

何事もなければ、ブラウザからSSL証明書を確認します。

「発行日」や「有効期限」が最新の状態になっていれば、SSL証明書の更新作業は完了です。

お疲れ様でした!

[参考] : SSL証明書ペア確認コマンド