TypistTech.trellis-cloudflare-origin-ca

Trellis Cloudflare Origin CA

Ansible Role GitHub tag (latest SemVer) Ansible Role Downloads Ansible Quality Score CircleCI License Twitter Follow @TangRufus Hire Typist Tech

Cloudflare Origin CAを、TrellisにSSLプロバイダとして追加します。

♥を込めて作成された Typist Tech


Trellis Cloudflare Origin CAは、オープンソースプロジェクトで完全に無料で使用できます。

しかし、新機能の維持と開発には、適切な資金支援がないと持続可能ではありません。もし可能であれば、以下のリンクから寄付を考慮してください。

GitHub via Sponsor Sponsor via PayPal More Sponsorship Information


Cloudflare Origin CAを、TrellisSSLプロバイダとして追加します。

なぜ?

短い答え:Cloudflareとサーバー間の接続をプライベートかつセキュアに保つためです。

詳しい答え:

CloudflareのフレキシブルSSLモードは、無料プランのCloudflareサイトに対してデフォルトです。このモードでは、ブラウザからCloudflareへのトラフィックは暗号化されますが、Cloudflareからサイトのオリジンサーバーへのトラフィックは暗号化されません。Cloudflareとオリジンサーバー間の接続を暗号化する完全かつ厳密なSSLモードを利用するには、オリジンサーバーに証明書をインストールする必要があります。

Cloudflareブログ - ユニバーサルSSLによるオリジンサーバー接続のセキュリティ

Cloudflare Origin CAのメリットは何ですか?Let's Encryptよりも?

Let's Encryptから証明書を取得するには、最初にCloudflareを無効にする必要があります。Cloudflareは実際のサーバーIPを隠し、Let's Encryptのチャレンジを失敗させます。Cloudflare Origin CAを使うことで問題が簡単になります。

Cloudflare Origin CAの利点は他の公開証明書に対して何ですか?

CloudflareブログのCloudflare Origin CAの導入をご覧ください。

ロール変数

# group_vars/<environment>/vault.yml
# このファイルは暗号化されるべきです。詳しくは: https://roots.io/trellis/docs/vault/
##########################################################################

# Cloudflare Origin CAキー
# CloudflareグローバルAPIキーとは混同しないでください
# 詳しくは: https://blog.cloudflare.com/cloudflare-ca-encryption-origin/#iiobtainyourcertificateapitoken
vault_cloudflare_origin_ca_key: v1.0-xxxxxxxxxxx

# group_vars/<environment>/main.yml
###################################

# 希望するパッケージ状態を示します。
# `latest`は最新バージョンがインストールされることを保証します。
# `present`は既にインストールされている場合は更新しません。
# 選択肢: present|latest
# デフォルト: latest
cfca_package_state: present

# 機密性の高いタスクの結果を隠すかどうか。
# 選択肢: true|false
# デフォルト: false
cloudflare_origin_ca_no_log: true

# group_vars/<environment>/wordpress_sites.yml
##############################################

wordpress_sites:
  example.com:
    # あなたのCloudflareアカウントは、これらのすべてのドメインを所有している必要があります
    site_hosts:
      - canonical: example.com
        redirects:
          - hi.example.com
          - hello.another-example.com
    ssl:
      # SSLを有効にする必要があります
      enabled: true
      # OCSPスタッピングは無効にする必要があります
      stapling_enabled: false
      # このロールを使ってCloudflare Origin CA証明書を生成します
      provider: cloudflare-origin-ca
    # 以下はオプションです
    cloudflare_origin_ca:
      # 発行された証明書が有効な日数。許可されるオプション: 7, 30, 90, 365 (1年), 730 (2年), 1095 (3年), 5475 (15年)。
      # デフォルト: 5475
      days: 7
      # 証明書としてSubject Alternative Namesに含める完全修飾ドメイン名のリスト。
      # デフォルト: すべての正規およびリダイレクトドメイン
      # 上記の例では: example.com, hi.example.com, hello.another-example.com
      hostnames:
        - example.com
        - '*.example.com'
        - '*.another-example.com'

Typist Techは、あなたの次の素晴らしいWordPressサイトを構築する準備ができています。 私たちに依頼してください!


要件

インストール

このロールをgalaxy.ymlに追加します:

- src: TypistTech.trellis-cloudflare-origin-ca # 大文字と小文字を区別!
  version: 0.8.0 # 最新バージョンをチェック!

$ trellis galaxy installを実行します。

Trellisのプレイブックを改造する

このロールをserver.ymlrole: wordpress-setupすぐ後に追加します:

    roles:
      # ...
-     - { role: wordpress-setup, tags: [wordpress, wordpress-setup, letsencrypt] }
+     - { role: wordpress-setup, tags: [wordpress, wordpress-setup, letsencrypt, cloudflare-origin-ca] }
+     - { role: TypistTech.trellis-cloudflare-origin-ca, tags: [cloudflare-origin-ca, wordpress-setup], when: sites_using_cloudflare_origin_ca | count }
      # ...

注意: role: wordpress-setupcloudflare-origin-caでタグ付けされています。

Nginxのインクルード

このロールは、Nginx SSLディレクティブを{{ nginx_path }}/includes.d/{{ item.key }}/cloudflare-origin-ca.confにテンプレートします。Trellisはこのファイルをデフォルトでこちらこちらに含めていますので、特別な操作は必要ありません。

Nginxの子テンプレートを使用している場合は、サーバーブロックに次の行を追加します:

include includes.d/{{ item.key }}/cloudflare-origin-ca.conf;

一般的なエラー

Cloudflare Origin CAを使用しているサイトがありません

明らかに、Cloudflare Origin CAを使用していない場合は、このロールを実行してはいけません。

vault_cloudflare_origin_ca_keyが定義されていません

Cloudflare Origin CAキーをgroup_vars/<environment>/vault.ymlに暗号化してください。詳細はロール変数を参照してください。

example.comがCloudflare Origin CAを使用しているがOCSPスタッピングが有効です

... あなたはOrigin CAでOCSPレスポンスをスタッピングしようとしています。現在、Origin CAではOCSPはサポートされていないので、Origin CA証明書を使用しているホストのssl_stapingディレクティブを削除する必要があります...

--- Cloudflareサポート

Cloudflare Origin CAはOCSPスタッピングをサポートしていません。Cloudflare Origin CAを使用しているすべてのサイトでOCSPスタッピングを無効にしてください。ロール変数をご覧ください。

key_typeが非推奨です。example.comから削除してください

誤設定を避けるために、key_type(ECDSAまたはRSA)とkey_size(ビット)オプションは非推奨です。v0.8以降、このロールは521ビットECDSAキーのみを生成します。

他の設定でCA証明書を以前に生成した場合:

  1. サーバーからCA証明書を削除してください
  2. CloudflareダッシュボードからCA証明書を取り消してください
  3. サーバーを再プロビジョニングしてください

key_sizeが非推奨です。example.comから削除してください

誤設定を避けるために、key_type(ECDSAまたはRSA)とkey_size(ビット)オプションは非推奨です。v0.8以降、このロールは521ビットECDSAキーのみを生成します。

他の設定でCA証明書を以前に生成した場合:

  1. サーバーからCA証明書を削除してください
  2. CloudflareダッシュボードからCA証明書を取り消してください
  3. サーバーを再プロビジョニングしてください

Nginxディレクトリが含まれていません

roots/trellis@f2b8107以降のバージョンを持っていることを確認してください。

400 Bad Request - 必要なSSL証明書が送信されませんでした

症状:

  • サーバーがすべてのリクエストに対して「400 Bad Request - 必要なSSL証明書が送信されませんでした」と返します
  • Nginxは「クライアントがクライアントリクエストヘッダーを読み取っているときに必要なSSL証明書を送信しませんでした」と記録しています
  • Nginxの設定ファイルのどこかにssl_verify_client on;があります
  • wordpress_sites.ymlclient_cert_urlを使用しています

原因:

あなたの認証されたオリジンプルの設定が正しくありません。

事実:

このロールは認証されたオリジンプルやssl_verify_clientとは関係ありません。

解決策:

  1. Cloudflare Origin CAの紹介を読む
  2. 認証されたオリジンプルを読む
  3. このロールがCloudflare Origin CAであることを理解する
  4. Cloudflare Origin CAと認証されたオリジンプルが2つの異なるものであることを理解する
  5. #34を読む
  6. まだ質問がある場合はCloudflareサポートに連絡する

FAQ

なぜ521ビットECDSAキーのみが許可されているのですか?

あなたがCloudflareで認証されたオリジンプルを設定したいのだと思います。私はECDSAを推奨します。なぜなら、楕円曲線は同じセキュリティを提供し、計算負荷が少ないからです。

ECDSA:より良いインターネットのためのデジタル署名アルゴリズムについてもっと知る 上記の記事でも、ECRYPT IIの推奨によれば、256ビットの楕円曲線キーは、3,248ビットの非対称キーと同じ保護を提供すると述べています。ウェブサイト証明書の典型的なRSAキーは2048ビットです。したがって、256ビットのECDSAを選択するのは良い選択だと思います。

--- Cloudflareサポート、2017年9月

誤設定を避けるために、key_type(ECDSAまたはRSA)およびkey_size(ビット)オプションは非推奨です。v0.8以降、このロールは521ビットECDSAキーのみを生成します。

他の設定でCA証明書を以前に生成した場合:

  1. サーバーからCA証明書を削除してください
  2. CloudflareダッシュボードからCA証明書を取り消してください
  3. サーバーを再プロビジョニングしてください

cloudflare_origin_ca_no_logtrueでもCloudflare Origin CAキーがログに表示されるのはなぜですか?

no_log属性の使用は、ANSIBLE_DEBUG環境変数を介してAnsible自体をデバッグする際にデータが表示されるのを防ぐものではありません。

--- Ansibleのドキュメント

Cloudflare Origin CAは完璧ですか?

すばらしいですね。このような素晴らしいものは他にどこで見つけられますか?

どこで5つ星のレビューができますか?

ありがとうございます!このプロジェクトを使用している人がいることを知ることが重要です。次のことを考慮してください:

その他

テストの実行

テストを実行します:

ansible-playbook -vvv -i 'localhost,' --syntax-check tests/test.yml
ansible-lint -vv .

フィードバック

フィードバックをお願いします! このプロジェクトをできるだけ役立つものにしたいです。 問題を報告し、どのような点が好きかや好きでないかを教えてください。またはプロジェクトをフォークしてプルリクエストを送ってください小さな問題も重要です。

セキュリティの脆弱性

このプロジェクトでセキュリティの脆弱性を発見した場合は、[email protected]までメールしてください。 すべてのセキュリティの脆弱性に迅速に対応します。

謝辞

Trellis Cloudflare Origin CAは、Typist Techのプロジェクトであり、Tang Rufusが維持しています。フリーランスの開発者です。

特に感謝するのは、このプロジェクトを可能にしたRootsチームTrellisです。

貢献者のフルリストはこちらで見ることができます。

ライセンス

Trellis Cloudflare Origin CAは、MITライセンスのもとで公開されています。

プロジェクトについて

Add Cloudflare Origin CA to Trellis as a SSL provider

インストール
ansible-galaxy install TypistTech.trellis-cloudflare-origin-ca
ライセンス
mit
ダウンロード
4.2k