すべてのデプロイガイド デプロイ

Cloudflareでオリジン証明書を設定する方法

CloudflareをCDN/プロキシとして使用する場合、訪問者はCloudflareのエッジサーバーに接続します。しかし、Cloudflareとオリジンサーバー間の接続はどうでしょうか?オリジンに証明書がなければ、その接続は暗号化されない可能性があり、HTTPSの意味がなくなってしまいます。

Cloudflare SSLモードの解説

モード訪問者 → CloudflareCloudflare → オリジンセキュリティ
OffHTTPHTTP❌ 暗号化なし
FlexibleHTTPS ✅HTTP ❌⚠️ 偽のセキュリティ感
FullHTTPS ✅HTTPS(未検証)⚠️ 暗号化されるが証明書の検証なし
Full (Strict)HTTPS ✅HTTPS(検証済み)✅✅ 推奨

「Flexible」は危険です。 訪問者にはパドロックが表示されますが、Cloudflare→オリジン間の接続は平文のHTTPです。そのネットワーク経路上の誰でもトラフィックを読み取れます。常に**Full (Strict)**を使用してください。

Let’s Encrypt証明書によるFull (Strict)の設定

最良のアプローチ:オリジンに実際の公的に信頼された証明書をインストールし、Full (Strict)を有効にします。

ステップ1: Let’s Encrypt証明書を取得する

GetHTTPSを使用して、ドメインの無料証明書を取得します。HTTP-01チャレンジがオリジンに到達するために、一時的にCloudflareプロキシを無効にする(DNS設定でオレンジ色のクラウドをグレーに変更する)必要があります。または、DNS-01を使用すればプロキシの変更は不要です。

DNS-01方式(プロキシ変更不要):

  1. GetHTTPSでDNS-01チャレンジを選択します
  2. Cloudflare DNSに_acme-challenge TXTレコードを追加します
  3. 検証して証明書をダウンロードします

HTTP-01方式:

  1. Cloudflare DNSで、ドメインのオレンジ色のクラウドをクリック → グレーのクラウド(DNSのみ)に変更します
  2. GetHTTPSでHTTP-01チャレンジを完了します
  3. 証明書を取得後、オレンジ色のクラウド(プロキシ)を再度有効にします

ステップ2: オリジンサーバーにインストールする

通常通り、NginxまたはApacheに証明書をインストールします。

ステップ3: CloudflareでFull (Strict)を有効にする

  1. Cloudflareダッシュボード → ドメインに移動します
  2. SSL/TLSOverview
  3. **Full (Strict)**を選択します

これにより、Cloudflareは接続前にオリジンに有効で信頼された証明書があることを検証するようになります。

代替案:Cloudflare Origin CA証明書

Cloudflareは独自のOrigin CA証明書を提供しています。これはCloudflareのみが信頼する無料の証明書であり、ブラウザが直接信頼するものではありません。

取得方法

  1. Cloudflareダッシュボード → SSL/TLSOrigin Server
  2. Create Certificateをクリックします
  3. 鍵の種類(RSAまたはECDSA)と有効期間(最大15年)を選択します
  4. 証明書と秘密鍵をダウンロードします
  5. オリジンサーバーにインストールします

Let’s Encryptとの比較

Cloudflare Origin CALet’s Encrypt(GetHTTPS経由)
信頼される範囲Cloudflareのみすべてのブラウザ(公的に信頼)
有効期間最大15年90日
自動更新の必要性なし(長い有効期間)あり(60〜90日ごと)
Cloudflareなしで動作
ブラウザから直接アクセス❌(エラーが表示される)
コスト無料無料

Cloudflare Origin CAを使用する場合: オリジンが常にCloudflareの背後にあり、更新管理をゼロにしたい場合。

Let’s Encryptを使用する場合: Cloudflareをバイパスする可能性がある場合(メンテナンス、移行)、オリジンに直接アクセスする必要がある場合、またはどこでも動作する証明書が必要な場合。

Full (Strict)が動作していることを確認する

設定後、接続が完全に暗号化されていることをテストします:

  1. Cloudflareダッシュボード → SSL/TLSOverviewに「Full (Strict)」と表示されていること
  2. サイトにアクセス → 訪問者にはCloudflareの証明書が表示されたパドロックが見えること
  3. オリジンを直接確認する(Cloudflareをバイパス):
    curl -I --resolve yourdomain.com:443:YOUR_ORIGIN_IP https://yourdomain.com
    Let’s Encrypt(またはOrigin CA)証明書による有効なHTTPSレスポンスが返されるはずです。

よくある質問

なぜFlexibleモードを使うべきではないのですか?

Flexibleモードは訪問者→Cloudflare間の接続を暗号化しますが、Cloudflareからオリジンへのトラフィックは平文のHTTPで送信されます。これは以下を意味します:

  • ISP、ホスティングプロバイダー、またはCloudflareのエッジとサーバー間のネットワーク上の誰でもすべてのトラフィックを読み取れます
  • 訪問者はパドロックを見てセキュアだと思いますが、バックエンド接続は保護されていません
  • これはログインページ、決済フォーム、またはあらゆる機密データにとって特に危険です

オリジン証明書はドメインと完全に一致する必要がありますか?

Full (Strict)モードの場合、はい。オリジン証明書はCloudflareが接続するドメインに対して有効でなければなりません。example.comのLet’s Encrypt証明書は動作します。自己署名証明書や別のドメインの証明書は動作しません。

ワイルドカードオリジン証明書を使用できますか?

はい。オリジンの*.example.comワイルドカード証明書は、Cloudflareを通じてプロキシされるすべてのサブドメインでFull (Strict)で動作します。

オリジン証明書の有効期限が切れるとどうなりますか?

CloudflareのFull (Strict)モードは証明書の有効性を確認します。オリジン証明書の有効期限が切れると、Cloudflareはセキュアな接続を確立できず、サイトに526エラー(Invalid SSL Certificate)が表示されます。これを防ぐために、有効期限の監視を設定してください。

関連記事

比較 2026-05-07
Let's Encrypt vs Cloudflare SSL:どちらを使うべきか?
Let's Encryptはあなたが所有する証明書を提供します。CloudflareはCDNプロキシの一部としてSSLを管理します。プライバシー、制御、ユースケースの観点から2つのアプローチを比較します。
デプロイ 2026-05-08
NginxにSSL証明書をインストールする方法
NginxにSSL証明書をインストールするステップバイステップガイド。ファイルアップロード、完全なサーバーブロック設定、TLSベストプラクティス、HTTP/2、HSTS、リダイレクト設定、テスト、6つの一般的なエラーのトラブルシューティングを解説します。
はじめに 2026-05-08
無料SSL証明書の取得方法(ステップバイステップガイド)
Let's Encryptから5分で無料のSSL証明書を取得。ソフトウェアのインストール不要、アカウント作成不要。4つの方法、両方のチャレンジタイプ、6つのプラットフォームへのインストール、トラブルシューティングを網羅した完全ガイドです。
ブラウザで無料 SSL 証明書を取得
インストール不要、アカウント不要。秘密鍵は常にデバイスに残ります。
証明書を取得