はじめに
「このサイトHTTPS化してないしな〜信用できんな〜」みたいなことをよく耳にするようになりました?
改めてHTTPSについて調べてまとめてみました。
HTTPSとは
HTTPとの違い
HTTP (HyperText Transfer Protocol)はWebサーバとクライアントがHTMLなどのデータを統一のルールで伝送するためのプロトコルですが、変換や解説の中間で読み取られる危険性があります。
一方でHTTPS (HyperText Transfer Protocol Secure)は、SSL/TLSを使用してHTTP通信を暗号化したもので、相手方の識別とデータの暗号化を実現します。
HTTPSの主要な機能
- データの暗号化: 送信で使用されるデータを暗号化することで、中間攻撃を防ぐ
- データの不正変更の防止: データが改ざんされていないことを確認
- 相手方の認証: 相手が信頼できる機関であることを証明
HTTPSが必要な理由
セキュリティ向上
暗号化通信、改ざん防止、相手方の証明を実現します。
ユーザーの信頼性向上
HTTPSで通信しているサイトはブラウザから信用されており、警告等は表示されません。
一方で、HTTPで通信しているサイトは、ブラウザ機能で警告が表示されることがあります。
SEO利点
昨今の検索エンジンはHTTPSを使用しているサイトを優先して表示するため、SEOの向上にも繋がります。
HTTPSの仕組み
HTTPSはSSL/TLSというプロトコルで通信します。
SSL (Secure Sockets Layer)は、暗号化通信を実現するために使用されるプロトコルです。
TLS(Transport Layer Security)はSSLの次世代規格になります。
SSL/TLSは、クライアントとサーバー間での通信を暗号化してくれます。
また、SSL/TLSは公開鍵暗号方式と共通鍵暗号方式の両方を使っているのも特徴の一つです。
下記の手順を踏んで通信を行なっています。
- クライアント:SSL通信をリクエスト
- サーバー:SSL証明書と公開鍵を送信
- クライアント:SSL証明書の組織とリクエスト先が同一であることを確認
- クライアント:共通鍵を作成。受け取った公開鍵で共通鍵を暗号化し、サーバーに送信
- サーバー:公開鍵に対応する秘密鍵で復号化して共通鍵を取り出す
- クライアント・サーバー:共通鍵を使って暗号化データをやり取り(暗号化通信)
SSL証明書は、SSL/TLSの技術を用いて「認証局(CA)」が発行する電子証明書のことです。SSL証明書を導入すると、通信データの暗号化や、サイトの運営者・通信相手が偽物ではなく正当に実在することの証明が可能です。
HTTPSの実装方法
使うサービスによって手順は異なりますが、ざっくり下記の手順を踏む必要があります。
- サーバーがhttps化に対応しているのか確認する
- CSR(証明書署名要求)を作成する
- SSLサーバー証明書を取得する
- SSLサーバー証明書をインストールする
- リンクをhttpsに置き換える
- httpへのアクセスはhttpsへリダイレクトを行うよう設定する
- Webサイトアクセスし、エラーが出ていないか確認する
※ SSL証明書には有効期限があるため、定期的に更新する必要がある
まとめ
今やHTTPSは、すべてのサイトでの対応が求められるほど必須のプロトコルです。
今まで「なんとなくHTTPSだと安心」くらいの解像度だったのが仕組みを理解した上で設定方法などを学ぶとより頭に入ってきますね。
読んでいただきありがとうございました!
参考記事