目次
はじめに
QNAPのContainerStationでWordPressをDockerで運用し、Cloudflare Tunnelで公開する場合、Cloudflare Origin CA証明書を使うことでCloudflareとオリジンサーバー(Nginx)間の通信を暗号化できます。
この記事では、Cloudflare Origin CA証明書の発行からNASへの配置、Nginxへの設定方法まで解説します。
Cloudflare Origin CA証明書とは
Cloudflareが無料で発行するSSL証明書です。
通常のSSL証明書との違い:
| Cloudflare Origin CA | Let’s Encrypt | 通常のSSL証明書 | |
|---|---|---|---|
| 価格 | 無料 | 無料 | 有料 |
| 有効期限 | 最大15年 | 90日 | 1〜2年 |
| 自動更新 | 不要 | 必要 | 必要 |
| 信頼範囲 | Cloudflare経由のみ | すべて | すべて |
重要な制限 Cloudflare Origin CA証明書はCloudflare経由のアクセスに対してのみ有効です。 Cloudflareを通さずに直接サーバーにアクセスすると証明書エラーになります。 Cloudflare Tunnelで運用している場合は問題ありません。
SSL/TLSモードの選び方

Cloudflareダッシュボードには4つのSSL/TLSモードがあります。
| モード | 説明 | 推奨 |
|---|---|---|
| オフ | 暗号化なし | 非推奨 |
| フレキシブル | ブラウザ↔Cloudflare間のみ暗号化 | 非推奨 |
| フル | 全区間暗号化(証明書検証なし) | △ |
| フル(厳密) | 全区間暗号化(証明書検証あり) | 推奨 |
Cloudflare Origin CA証明書を使う場合は**フル(厳密)**を選択します。
環境
- QNAP NAS(ContainerStation インストール済み)
- Cloudflareアカウント(無料プラン)
- Nginx リバースプロキシ(Dockerコンテナ)
- Cloudflare Tunnel で公開済み
ファイル構成
shared/
└── certs/
├── origin_ca.pem ← Cloudflare Origin CA ルート証明書
├── origin.crt ← サーバー証明書(Cloudflareで発行)
└── origin.key ← 秘密鍵(Cloudflareで発行)
Step 1:SSL/TLSモードをフル(厳密)に設定する
dash.cloudflare.comにログイン- 対象ドメインを選択
- 左メニューの SSL/TLS → 概要 をクリック
- 「設定」 をクリック
- 「フル(厳密)」 を選択

Step 2:Cloudflare Origin CA証明書を発行する
発行画面を開く
- 左メニューの SSL/TLS → オリジンサーバー をクリック
- 「証明書を作成」 をクリック
【画像:オリジンサーバー画面(証明書を作成ボタンがある画面)】

証明書の設定

以下の設定で証明書を作成します:
キーの生成方法:
CloudflareでプライベートキーとCSRを生成する(デフォルト)を選択- プライベートキーの種類:
RSA (2048)
ホスト名: デフォルトで以下の2つが自動入力されます:
*.your-domain.com(ワイルドカード:サブドメインすべてに対応)your-domain.com(ルートドメイン)
ワイルドカード証明書について
*.your-domain.comを含めることでwww.your-domain.comなどのサブドメインも1つの証明書でカバーできます。
証明書の有効期限:
- デフォルト:15年
- 最大15年まで選択可能

「作成」 をクリックします。
Step 3:証明書と秘密鍵をダウンロードする
作成後に証明書(.crt)と秘密鍵(.key)が表示されます。
この画面は一度しか表示されません 秘密鍵は作成時にしか確認できません。必ずその場でコピーして保存してください。 画面を閉じると秘密鍵は二度と表示されません。
以下の2つをテキストファイルとして保存します:
- 証明書 →
origin.crtとして保存 - 秘密鍵 →
origin.keyとして保存
Step 4:Cloudflare Origin CA ルート証明書をダウンロードする
Nginxの設定でルート証明書(origin_ca.pem)が必要な場合があります。
以下のURLからダウンロードできます:
https://developers.cloudflare.com/ssl/static/origin_ca_rsa_root.pem
ファイル名をorigin_ca.pemとして保存します。
Step 5:証明書をNASに配置する
ダウンロードした3つのファイルをNASの以下のフォルダに配置します:
/share/CACHEDEV4_DATA/docker/shared/certs/
├── origin_ca.pem
├── origin.crt
└── origin.key
ファイルの確認:
ls -la /share/CACHEDEV4_DATA/docker/shared/certs/

opensslコマンドで証明書の詳細を確認できます:
openssl x509 -in /share/CACHEDEV4_DATA/docker/shared/certs/origin.crt -noout -dates -subject
実行結果の例:
notBefore=May 8 02:36:00 2025 GMT
notAfter=May 4 02:36:00 2040 GMT
subject=O = "CloudFlare, Inc.", OU = CloudFlare Origin CA, CN = CloudFlare Origin Certificate
Step 6:Nginxの設定に証明書を紐付ける
Nginxのサイト設定ファイル(conf.d/your-site.conf)に証明書のパスを指定します。
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/certs/origin.crt;
ssl_certificate_key /etc/certs/origin.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://wordpress_your_site;
...
}
}
docker-compose.ymlでのマウント設定:
nginx_reverse_proxy:
volumes:
- ./certs:/etc/certs:ro ← certs フォルダをコンテナにマウント
/etc/certs/にマウントすることで、Nginx設定ファイルから/etc/certs/origin.crtとしてアクセスできます。
Step 7:複数ドメインで1つの証明書を使う
複数のサイトを運用している場合、すべてのサイトで同じ証明書ファイルを参照できます。
# your-site1.conf
ssl_certificate /etc/certs/origin.crt;
ssl_certificate_key /etc/certs/origin.key;
# your-site2.conf(同じファイルを参照)
ssl_certificate /etc/certs/origin.crt;
ssl_certificate_key /etc/certs/origin.key;
なぜ複数サイトで使えるのか Cloudflare Origin CA証明書はCloudflare経由のアクセスに対して有効で、ドメインの検証はCloudflare側で行われます。 オリジンサーバー(Nginx)側では証明書の存在と有効期限のみ確認されるため、複数サイトで同じ証明書を使用できます。 ただし厳密な運用では、サイトごとに証明書を発行することを推奨。
Step 8:Nginxを再起動して確認する
証明書を配置したらNginxを再起動します:
cd /share/CACHEDEV4_DATA/docker/shared
docker compose up -d --force-recreate nginx_reverse_proxy
ブラウザでサイトにアクセスして鍵マークが表示されれば設定完了です。
証明書の有効期限と更新について
Cloudflare Origin CA証明書は最大15年有効です。
| 項目 | 内容 |
|---|---|
| 発行日 | 証明書作成日 |
| 有効期限 | 最大15年後(例:2025年発行→2040年まで有効) |
| 自動更新 | なし(手動更新が必要) |
| 更新方法 | 新しい証明書を発行してファイルを差し替え |
更新のタイミング 有効期限が近づいたらCloudflareダッシュボードから新しい証明書を発行して
origin.crtとorigin.keyを差し替えます。 Nginxを再起動すれば新しい証明書が適用されます。
まとめ
Cloudflare Origin CA証明書の設定手順をまとめます:
- SSL/TLSモードを**フル(厳密)**に設定する
- Cloudflareダッシュボードで証明書を発行する
- 証明書(
origin.crt)と秘密鍵(origin.key)を保存する - NASの
certs/フォルダに配置する - Nginxの設定ファイルで証明書のパスを指定する
- docker-compose.ymlで
certsフォルダをマウントする
Cloudflare Origin CA証明書のメリット:
- 無料・最大15年有効で更新の手間がほぼない
- Cloudflare Tunnel + Nginxの構成に最適
- 複数サイトで1つの証明書を流用できる
