2017年現在のSSLサーバ証明書選定

#この記事について
SSLサーバ証明書は、商用のサイトなら当たり前のように導入されていますが、既に導入されているサイトも現時点で導入していないサイトも見直す必要に迫られています。
最適なSSLサーバ証明書はどれなのか？という考え方を書いてみたいと思います。
サーバ証明書ってSymantec(旧ベリサイン)のものが一番いいんじゃないの？とか、無名のブランドは大丈夫なの？とか、よく聞かれるので、正しい知識を広めたいというのが目的です。
正しい知識を広めたいからには、もし誤っている点などありましたらご指摘大歓迎です。

#背景
### 1.常時SSL対応が必須
情報漏えいやフィッシング詐欺の横行などにより、公開サイトでは常時SSL(AOSSL)の対応が必須になってきています。Chromeブラウザでは、2017年10月にリリース予定のChrome62から非暗号化ページ(http)に「input type="text"」があった場合「保護されていません」との表示になります。
その為、**暗号化対応(https対応)を進めていく必要があります。**

Google Search Consoleでのセキュリティ警告

>2017 年 10 月より、ユーザーが Chrome（バージョン 62）で HTTP ページのフォームにテキストを入力すると、「保護されていません」という警告が表示されるようになります。また、シークレット モードを使用している場合は、HTTP ページにアクセスするだけで「保護されていません」と表示されます。

### 2. GoogleがSymantecの証明書に対する信頼を破棄
Symantec社によるサーバ証明書の発行プロセスに不備があったため、**Symantecが発行したサーバ証明書を段階的に認めない(Chromeブラウザでエラー表示)ようにする**とのことです。
※この件の対応はまだ流動的ですが、**Chrome70(2018年10月リリース予定)でSymantecグループ(Thawte、VeriSign、Equifax、GeoTrust、RapidSSL など)で認めなくなることは確定っぽい**です。
[Chrome が Symantec の証明書に対する信頼を破棄する予定について](https://developers-jp.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html)

### 3.Let's Encryptがワイルドカード証明書に対応予定(2018年1月から発行)
暗い話ばかりではありません。
**無料SSLサーバ証明書のLet's Encryptがワイルドカードに対応**します。
これまでもSAN(Subject Alternative Name)で複数ホストに対応させることは可能でしたが、ホスト名が増えた場合、再度取得が必要など手間がありました。
この手間が解決されるのではないかと期待しています。
[2018年1月にワイルドカード証明書の発行を開始](https://letsencrypt.jp/blog/2017-07-06.html)

#サーバ証明書の役割
おさらい的ですが、証明書というからには証明の役割があるということ。
#### 1. サイトの実在証明
サイトの運営組織が実在することを、証明書発行会社が証明する。
審査が通らない場合は、**サーバ証明書が発行されない。**

#### 2. 暗号化通信が正しく行われていることの証明
SSL/TLS暗号化が正しく実装されていることの証明。
鍵交換が正しく行われるか、暗号強度は適切であるか、コンテンツの一部に非暗号化状態(http)で呼び出しているものがないかなど。
正しく実装されていない場合は、**ブラウザで判別し緑色の表示にならない。**

オレオレ証明書でもデータの暗号化はされています。しかし、オレオレ証明書は証明するのが自分自身なので証明にはなりません。
第三者が証明してくれることにより、正しく保護されている表示(緑表示)となるわけです。
その第三者が確認する方法の違いにより、サーバ証明書の種類があります。

#サーバ証明書の種類
まず、サーバ証明書の種類は、あくまでサイトの実在証明レベルを表すものであり、**暗号化の強度とは関係はありません。**
信頼性を求める外部向けサイト(銀行・証券会社・ECサイト等)、IPアドレスで制限している内部向けサイト(バックエンドシステム等)など、**システムの用途により適切な種類を選択することが重要です。**

| 種類       |サイトの実在証明方法 | 表示例(Google Chrome)|表示例(Microsoft Edge)|
|:-----------------|:------------------|:------------------|:------------------|
| EV(Extended Validation)証明書 | 高(登記簿謄本などの提出が必要) | ![Google ChromeのEV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/ev_ssl_chrome.png) | ![Microsoft EdgeのEV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/ev_ssl_edge-1.png)|
| OV(Organization Validation)証明書 | 低(帝国データバンクの登録情報や所在確認等)| ![Google ChromeのOV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/ov_ssl_chrome.png) |![Microsoft EdgeのOV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/ov_ssl_edge.png) |
| DV(Domain Validation)証明書 | 無し | ![Google ChromeのDV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/dv_ssl_chrome.png) | ![Microsoft EdgeのOV証明書表示](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/dv_ssl_edge.png)|

※ちなみに、OV証明書とDV証明はいまのところ表示の差はありません。強いて言えば、証明書のサブジェクト項目にコモンネーム(CN)のみ表示されているのがDV証明書。
　組織単位名(OU)とか組織名(O)など表示されているのがOV証明書ですが、一般的なユーザーは気にしないでしょう。
Yahoo!Japanの証明書
![Yahoo!Japanの証明書](https://storage.googleapis.com/hocchi-wp-jp.appspot.com/yahoo_certificate.png)

#主なサーバ証明書
現在販売している主なサーバ証明書です。
Googleが信頼を破棄する予定のSymantecグループ(Thawte、VeriSign、Equifax、GeoTrust、RapidSSL など)は除外しています。

###EV証明書
| No       |発行会社名|製品名|サイトシールの有無|wwwオプション |価格(年額)|
|:--------:|:---------|:----|:------------:|:--------:|:-------:|
| 1 | サイバートラスト | [SureServerEV](https://www.cybertrust.ne.jp/sureserver/lineup/)| ◯ | ◯|  ￥150,000|
| 2 | グローバルサイン | [EV SSL](https://jp.globalsign.com/service/ssl/ev.html)| ◯ | ◯|  ¥94,000|
| 3 | DigiCert | [DigiCert EV SSL Plus](https://www.digicert.ne.jp/ssl/ssl-plus.html)| ◯ | ◯|  ¥54,600|

* 機能的に差異はみられませんが、記載の間違いではないか？と思うぐらいDigiCertが安いですね。(価格はサイトに記載された定価です。)

* DigiCertとは、SymantecからSSL証明書事業を引き受けた企業です。
[Symantec、SSL証明書事業をDigiCertに9億5000万ドルで売却](http://itpro.nikkeibp.co.jp/atcl/idg/14/481542/080700403/)

* wwwオプションとは、サイバートラストの呼び方ですが、1枚の証明書で「www.example.com」「example.com」の2つをカバーするものです。これはプリロードHSTS（Preload HSTS）で必要になると思います。
例えば、「www.example.com」でサイトを運営している場合、「example.com」からwww付きの「www.example.com」にリダイレクトさせると思いますが、その場合「example.com」もhttpsに対応させ、正しく証明書を通す必要があります。

###OV証明書(ワイルドカード)
| No |発行会社名|製品名|サイトシールの有無|ワイルドカードの複数階層対応|価格(年額)|
|:--:|:---------|:----|:------------:|:--------:|:--------------------:|:-------:|
| 1 | グローバルサイン | [ワイルドカードSSL(企業実在認証)](https://jp.globalsign.com/service/ssl/wildcardssl.html)| ◯ |  × | ¥128,000|
| 2 | DigiCert | [Wildcard Plus](https://www.digicert.ne.jp/ssl/wildcard-ssl-certificates.html)| ◯ | ◯ | ¥120,000|

* 価格的に差異はありませんが、機能面で差異があります。DigiCertの場合「www.example.com」と「support.mail.example.com」のような別の階層のアドレスも1枚で対応可能です。
もしこういったURLの構成で展開しているようなら、DigiCertがよいかと思います。

###OV証明書
| No       |発行会社名|製品名|サイトシールの有無|wwwオプション |価格(年額)|
|:--------:|:---------|:----|:------------:|:--------:|:-------:|
| 1 | サイバートラスト | [SureServer](https://www.cybertrust.ne.jp/sureserver/lineup/)| ◯ | ◯|  ￥75,000|
| 2 | グローバルサイン | [企業認証SSL](https://jp.globalsign.com/service/ssl/bizssl.html)| ◯ | ◯|  ¥59,800|
| 3 | DigiCert | [DigiCert SSL Plus](https://www.digicert.ne.jp/ssl/ssl-plus.html)| ◯ | ◯|  ¥54,600|

* 機能的にも価格的にも、それほど差異はありません。

###DV証明書(ワイルドカード)
| No |発行会社名|製品名|サイトシールの有無|ワイルドカードの複数階層対応|価格(年額)|
|:--:|:---------|:----|:------------:|:--------:|:--------------------:|:-------:|
| 1 | グローバルサイン | [ワイルドカードSSL(ドメイン認証)](https://jp.globalsign.com/service/ssl/wildcardssl.html)| ◯ |  × | ¥94,000|
| 2 | ISRG | [Let's Encrypt Wildcard(2018年1月～)](https://letsencrypt.org/)| × | 不明 | ¥0(3ヶ月毎更新)|

* ジオトラストを除けば、グローバルサインぐらいなのかと思いますが、2018年1月から開始となるLet's EncryptのWildcardで勢力図も変わりそうです。

###DV証明書
| No       |発行会社名|製品名|サイトシールの有無|wwwオプション |価格(年額)|
|:--------:|:---------|:----|:------------:|:--------:|:-------:|
| 1 | グローバルサイン | [クイック認証SSL](https://jp.globalsign.com/service/ssl/quickssl.html)| ◯ | ◯|  ¥34,800|
| 2 | SecureCore | [SecureCore ドメイン認証SSL](https://www.securecore.co.jp/ssl/sslcert/domaincert.php)| ◯ | ×|  ￥5,000|
| 3 | ISRG | [Let's Encrypt](https://letsencrypt.org/)| × | × |  ¥0(3ヶ月毎更新)|

機能的差異で価格にもバラつきがありますが、内部向けのサイトでしたらLet's Encryptで全く問題なし。(但し、有効期限が3ヶ月なので、自動更新の処理を組み込むなど多少手間。)

## そこまで信頼性が必要でない外部公開のサイトは？
コスト的に許すのであれば、もちろんEV証明書でOKです。

コストを抑えたいのであれば、
1. サイトシールが必要か？
2. wwwオプションが必要か？
3. そもそも、これからリリースするサイトは複数のアドレスでワイルドカード対応が必要なのか？
4. 予算的にどれくらい出せそうか？
などで検討したらよいかと思います。

# まとめ
* サーバ証明書の種類を理解して、適切なものを選ぼう。(Symantecグループのものはあかんよ。)
* 信頼性を求める外部向けのサイト(銀行・証券会社・ECサイト等)は、EV証明書を検討しよう。(もちろんコスト的に厳しければ他の証明書でもOK)
* EV証明書は、DigiCertが安いよ。(DigiCertって、ブランド名が・・という人はサイバートラストとかグローバルサインとか。)
* IPアドレスで制限しているなど内部向けのサイトでは、DV証明書で十分。(無料のLet's Encryptがあるから、そろそろオレオレ証明書はやめよう。)
* Let's EncryptのWildcard対応が楽しみ。