SSLとはインターネット上でやりとりされるデータを暗号化する仕組みのひとつです。
インターネット上でやりとりされる、クレジットカード番号や個人情報、パスワードなどの情報を盗聴(ハッキング)を防ぎ、その情報を改ざんから防ぐために使われます。
また、SSLのもう一つの役割として、相手が本当に実在するのか?詐称されていないことを証明するというものがあります。
SSLはメール(smtpなど)やFTPなどの通信でも使われますが、本稿では主にホームページで使われるSSLについて説明します。
httpとhttps
ホームページとの通信がSSLによって行われているか否かは、ブラウザの表示またはページのURLで判断できます。ブラウザでアクセスした時に、SSLに対応していれば、アドレスバーに🔒のような鍵マークが表示されます。対応していなければ鍵マークが表示されないか、「保護されていない/安全ではない」などと表示されます。
あるいは、URLがhttps://で始まっていればSSLに対応した通信ですが、http://(sが付かない)であれば、SSLに対応していません。
SSLに対応していない通信は平文(暗号化されていない)で行われます。これは郵便物に例えるとハガキのようなものですので、途中経路で盗み見されてしまうリスクがあります。
https://www.ride.ne.jp/ のiOS Safariでの表示例(2021年現在)。SSLに対応しており、アドレスバーに🔒マークが付いている。
とある出版社のサイトのGoogle Chromeでの表示例(2021年現在)。SSLに対応しておらず、アドレスバーに「保護されていない通信」という警告表示が出る。
「SSL証明書」とは
SSLによる暗号化を行うための「鍵」の1つです。認証局(後述)によって発行されており、その鍵自体が安全で改ざんされていないと証明されています。https://でアクセスするためには、ウェブサイトのサーバー(ウェブサーバー)にSSL証明書をインストールしておく必要があります。
自己署名証明書
ブラウザと提携した認証局によって発行されていない証明書です。
イントラネット内など、不特定多数に公開されないサイトで利用されることがあります。
俗にオレオレ証明書と呼ばれることもあります。
「認証局」とは
SSL証明書を署名、発行する事業者です。
代表的な事業者に、GMOグローバルサイン、セコムトラストシステムズ、デジサート、サイバートラスト、Let’s Encryptなどがあります。
認証局は証明書発行にあたり、対象ホスト(ドメイン)が実在しているかや、申請者がホストの所有者であるかなどを審査します。証明書の「認証レベル」によっては、より詳しい審査を行います(後述)。
「認証レベル」とは
SSL証明書の名義人を、認証局がどこまで詳しく調べるか、によって3つのレベルがあります。暗号化の強度とは関係はありませんのでご注意ください。
DV認証(ドメイン認証)
認証局がドメインの実在性と、その所有権を審査します。
この証明書では、例えば https://www.example.com/ にアクセスしたとき、「ホスト名 www.example.com が実在し、このホスト名の所有者によって取得された (無関係な第三者によって取得されたものではない) SSL証明書であること」が証明されます。
ドメイン認証における認証局側の審査は、ほぼ自動で行われるため、このSSL証明書は、比較的短期間(即日~数日)で取得することが可能です。
OV認証(組織認証)
上記のドメイン認証に加え、名義人の組織が法的に実在しているかも確認する審査が行われます。多くは、帝国データバンクやDUNSなどの第三者データベースとの照合も行われます。ウェブサイトを訪れたユーザーは、ブラウザからSSL証明書の中身を確認することで、そこに記載された名義人の名前と住所(通常は都道府県と市区町村)を確認できます。
企業認証とも呼ばれます。
https://speever.jp/ のGoogle ChromeでのOV証明書の例(2021年現在)。東京都千代田区のRide Co.,Ltd(ライド株式会社)のサイトであることが証明されている。
EV認証
OV認証に似ていますが、より厳格な審査が行われます。
銀行などの金融機関や、大規模なショッピングサイトなどで利用されています。
かつては、ブラウザのアドレスバーが緑色になり、また組織名がアドレスバーに表示されましたが、現在はほとんどの主要ブラウザではこのような表示が行われなくなったため、EV認証のSSL証明書は、あまり使われなくなっていく傾向にあります。
https://www.ride.ne.jp/ のInternet ExplorerでのEV証明書の例(2021年現在)。このような緑色のアドレスバーに組織名も記載されるブラウザは、2021年現在Internet Explorerのみ。
同 Google ChromeでのEV証明書の例(2021年現在)。🔒アイコンをクリックすると組織名が表示される。
「常時SSL化」とは
ウェブサイト内のすべてのページをSSL化(HTTPS化)することを指します。
かつてはウェブサイト内のフォームなど、暗号化が必要な部分に限ってSSL化することも多かったですが、SafariやGoogle Chromeが”http://”のページを「安全でない」と表示するようになってからは、すべてのページをSSL化することが主流となりました。
httpからhttpsへのリダイレクト
一般的には、常時SSL化の一環として「”http://”でアクセスされた時には、自動で”https://”に転送(リダイレクト)する」といった措置も行われます。
(例: http://example.com/blog/にアクセスされたらhttps://example.com/blog/に転送する)
このリダイレクトは、.htaccessファイルでサーバーの設定を書き換えたり、WordPressであればプラグインなどで対応したりすることが多いです。レンタルサーバーによっては、サーバーの管理画面などから設定できる場合もあります。
httpからhttpsへリダイレクトしておくと、Googleなどの検索エンジンが「このサイトは常時SSL化されている」と判断し、検索順位に有利に影響することがあります。
混在コンテンツ/混合コンテンツ
SSL化されたページの中に、画像やJavaScript、CSSなどが”http://”で埋め込まれている場合は、SSL化されているにも関わらず、ブラウザが安全でない、と警告したり、該当コンテンツが表示/適用されなくなったりします。常時SSL化する際にはこのような混在コンテンツを排除、代替する必要があります。