ここではCloudflareのCDNの[SSL/TSL]メニュの詳細を解説します。
[SSL/TSL]メニュには下記のサブメニュがあります。
| サブメニュ | 概要 |
| 1.概要 | ブラウザとCloudflare間、CloudflareとWebサーバ間の暗号化方式を決定します。 |
| 2.エッジ証明書 | ブラウザとCloudflare間で利用する証明書の設定を行う所です。 |
| 3.クライアント証明書 | CloudflareとWebサーバの通信をCloudflereに限定する為の証明書の作成。 |
| 4.オリジン サーバー | CloudflareとWebサーバ間の証明書を作成する所です。 |
| 5.カスタム ホスト名 | 関連企業のSSL/TSL証明書を作成/管理する所です。 |
1.概要
ここでは[ブラウザとCloudflare]、[CloudflareとWebサーバ]の通信の暗号化方式を選択します。
CloudflareのCDNの稼働環境を図示すると下図の様になります。

①ブラウザとCloudflare間はIPv4またはIPv6で会話します。
②CloudflareとWebサーバ間はAレコード接続(IPv4)、AAAAレコード接続(IPv6)及びCNAMEレコード(トンネル接続)の3通りの接続方法があり、推奨はトンネル接続です。
詳細は[CloudflareのDNSにWebサーバを接続する方法【概論】]を参照して下さい。
[推奨設定]
フル (厳密)を選択します。
この設定は上記の①の通信は2項のエッジ証明書で設定されている暗号化方式で通信し、上記の②の通信は4項のオリジナルサーバの証明書を使ってい通信をするという設定になります。
上記の②の通信にトンネル接続を利用している場合は4項のオリジナルサーバの証明書を利用しません。
しかし、トンネルが何かの都合で利用できなかった場合にCloudflareが通常の方法でオリジナルサーバにアクセスする可能性もあるようで、この時の為に4項のオリジナルサーバの証明書も設定しておくという設定になります。
しかし、Webサーバの80/443のポートがブロックしておくと、トンネルに問題があってもこの証明書を使った通信は行われません。
2.エッジ証明書
ブラウザとCloudflare間の証明書に関する設定を行う所です。
1.エッジ証明書
無償版ではこので利用する証明書は[Universal]と[バックアップ]の2つがセットされています。
[Universal]の証明書は[Google Trust Services]の証明書を利用し、Cloudflareが管理および自動更新してくれます。
[バックアップ]の証明書は[Sectigo]の証明書で上記のGoogleの証明書が使えなかった時の予備です。
利用している証明書の確認は下記で行えます。
Webサイトをアクセスした画面で下記操作を行うと証明書が[Google Trust Services]になっている事が確認できます。
①URLの前のアイコンをクリックし[この接続は保護されています]をクリックします。

②表示された画面の[証明書は有効です]をクリックします。

③証明書を確認します。
証明書の発行元がGoogle Trust Servicesになっています。

①URLの前の鍵アイコンをクリックし[接続がセキュリティで保護されています]をクリックします。

②表示された画面の右上の[証明書マーク]をクリックします。

③証明書を確認します。
証明書の発行元がGoogle Trust Servicesになっています。

①URLの前の鍵アイコンをクリックし[安全な接続]をクリックします。

②表示された画面の[認証局]を確認します。
証明書の発行元がGoogle Trust Servicesになっています。

2.常に HTTPS を使用
ONにします。
この機能はHTTPでアクセスがきた時に次回からはHTTPSでアクセスしてくれとブラウザに依頼する機能です。
3.HTTP Strict Transport Security (HSTS)
この機能は始めからHTTPSでアクセスする事をブラウザに依頼するする機能です。
HSTSに関する説明と設定方法は[Cloudflareで管理するドメインにHSTSを適用させる方法]を参照して下さい。
4.最小 TLS バージョン
TSLは安全だったのですが、現在は1.0と1.1は危険性があると言われています。
そこで[TSL1.2]を指定します。これでTSL1.2以上を使う指定になります。
5.TLS 1.3
ONにします。TSL1.3が利用できる環境ならこれを利用するという設定です。
6.HTTPS の自動リライト
サイトに中にHTTP文書が混在している場合にONだとHTTPとHTTPSに置き換えます。
7.日和見暗号化(Opportunistic Encryption)
これは完全なHTTPS化が難しいが、可能な範囲で暗号化通信を提供したい場合に利用するものです。
あまり意味は無いと思いますがONで良いと思います。
8.証明書の透明性の監視
ONにします。ONの場合はエッジ証明書が更新された時にメールで通知してくれます。
下記は参考情報です。
| 機能 | HTTPリクエストのリダイレクト | 混在コンテンツの対処 | HTTP接続での暗号化 | ブラウザへのセキュリティ指示 |
| 2.常に HTTPS を使用 | はい(会話で実行) | いいえ | いいえ | いいえ |
| 3.HSTS | はい(ブラウザ側で実行) | いいえ | いいえ | はい |
| 6.HTTPS の自動リライト | いいえ | はい | いいえ | いいえ |
| 7.日和見暗号化 | いいえ | いいえ | はい | いいえ |
3.クライアント証明書
CloudflereとWebサーバの通信をCloudflereに限定する時に利用する証明書を作成する所です。
クライアント証明書を作成し、WebサーバのApacheの設定にこの証明書がないクライアントとは通信しないプログラムを追加します。
この時に4項のオリジンサーバにある[認証済み Origin Pull]がONになっているとこの問い合わせに回答する仕組みになります。
4.オリジン サーバ
CloudflereとWebサーバがSSL/TSL通信を行う為の証明書を作成する所です。
1.オリジン証明書
オリジン証明書は、CloudflareとWebサーバの通信に利用するSSL/TSL証明書を作成します。
[作成方法]
①[証明書を作成]ボタンを挿入します。
②証明書は15年を選択し[作成]ボタンを挿入します。
③証明書の作成(PEM形式で作成します)
・[オリジン証明書]をコピーし[cert.pem]ファイルとして保存します。
・[プライベートキー]をコピーし[privkey.pem]ファイルとして保存します
尚、ファイルは改行はLFのみでUTF-8(BOM無し)で保存します。
・[OK]で終了します。
④作成した証明書をWebサーバに登録します。
以上でCloudflareとWebサーバはこの証明書で通信ができる様になります。
2.認証済み Origin Pull
オリジン証明書を利用する事によりCloudflareとオリジンサーバの通信は暗号化されます。
しかしこのままでは第三者もこの証明書を使ったアクセスができます。
これをCloudflere以外と通信できなくするのが認証済み Origin Pullです。
3項のクライアント証明書と連動して利用しますが、トンネル接続を行っていた場合は予備の予備なのでOFFで良いと思います。
5.カスタム ホスト名
カスタムホスト名は、関連企業のSSL/TSLの証明書を作成/管理する所で、Let’s Encrypt証明書と同じようにSSL証明書が作成できます。
Cloudflareのビジネスまたはエンタープライズプランの機能で、無料版では利用できません。
上記のドキュメントはClodflareのCDNの解説資料の一部で全体像はCDNドキュメント一覧を参照して下さい。