Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

パブリック DNS

最終更新 Markdown で表示Agent セットアップ

Cloudflare Tunnel のセットアップ を使えない場合は、鍵サーバー用のパブリック DNS レコードを作成することもできます。

この方法は理想的ではありません。DNS レコードを プロキシ できないため、鍵サーバーのオリジン IP アドレスが公開されます。


始める前に

対応プラットフォーム

Keyless は amd64arm アーキテクチャでテスト済みです。鍵サーバーのバイナリは、Go がサポートするすべてのアーキテクチャで動く見込みです。ほかの CPU 向けのコードサポートがある場合もありますが、それらのアーキテクチャは未テストです。

ベアメタルに加えて、仮想化環境やコンテナ環境でも鍵サーバーは問題なく動くはずです。適切な TCP ポートへの受信アクセスと、秘密鍵へのファイルシステムアクセス(ファイルシステムストレージを使う場合)を設定してください。

対応オペレーティングシステム

Keyless を動かすには、対応しているオペレーティングシステム(OS)が必要です。対応 OS は次のとおりです。

  • Ubuntu 20.04 LTS (Focal), 22.04 LTS (Jammy), 24.04 LTS (Noble)
  • Debian 11 (Bullseye), 12 (Bookworm), 13 (Trixie)
  • RHEL 8, 9, CentOS 8, および CentOS Stream 9
  • Amazon Linux 2, 2023

鍵サーバーは秘密鍵にアクセスするため、ベンダーがまだサポートしている(セキュリティ更新を受け取っている)OS を強く推奨します。


1. パブリック DNS レコードを作成する

  1. ターミナルを開き、openssl rand -hex 24 を実行して、11aa40b4a5db06d4889e48e2f738950ddfa50b7349d09b5f.example.com のような長くてランダムなホスト名を生成します。
  2. DNS プロバイダーの画面で、このレコードを Keyless SSL サーバーの IP アドレスを指す A または AAAA レコードとして追加します。
  3. Keyless SSL サーバーの初期化時に、このホスト名をサーバーのホスト名として使います。

Keyless SSL で使う証明書

Keyless SSL では 2 種類の証明書 を使います。取り違えは、セットアップでいちばん多い誤りです。

証明書 内容 SAN に含めるもの
エッジ(Keyless SSL)証明書 サイト向けに Cloudflare が配信する公開証明書です。 サイトのホスト名のみ(例: www.example.com
鍵サーバー認証証明書 鍵サーバーが Cloudflare に対して自身を証明するために使う証明書です。 鍵サーバーのホスト名のみ

2. Keyless SSL 証明書をアップロードする

鍵サーバーを設定する前に、対応する SSL 証明書を Cloudflare のエッジへアップロードする必要があります。TLS 終端のとき、Cloudflare は接続元ブラウザーへこれらの証明書を提示し、(再開されていないセッションでは)指定した鍵サーバーと通信してハンドシェイクを完了します。

Cloudflare Keyless SSL で使う SAN だけを含む証明書を、Cloudflare へアップロードしてください。Keyless SSL のホスト名はすべて プロキシ済み である必要があります。

Keyless SSL で使う証明書は、それぞれアップロードする必要があります。

ダッシュボードで Keyless 証明書を作成するには、次の手順を行います。

  1. Cloudflare ダッシュボードで Edge Certificates ページを開きます。

    Edge Certificates を開く ↗
  2. Upload Keyless SSL Certificate を選択します。

  3. アップロード用のモーダルに証明書とその他の情報を入力し、Add を選択します。

ラベル 説明 値の例
Key server label 鍵サーバーを一意に識別する任意の名前です。 “test-keyless”, “production-keyless-1”
Key server hostname この証明書の鍵を保持する鍵サーバーのホスト名です(先に生成したランダムなホスト名など)。 11aa40b4a5db06d4889e48e2f738950ddfa50b7349d09b5f.example.com
Key server port 鍵サーバー側で変更していない限り、2407 にします。 2407
SSL Certificate 秘密鍵を保持している、有効な X509v3 SSL 証明書(PEM 形式)です。 (PEM bytes)
Bundle method ほぼ常に Compatible にします。詳細は カスタム証明書のアップロード を参照してください。 Compatible

API で Keyless 証明書を作成するには、POST リクエストを送ります。


3. 鍵サーバーをセットアップして有効化する

最後に、インフラストラクチャへキーサーバーをインストールし、Cloudflare のエッジで TLS を終端するために使う証明書の SSL キーを格納して、相互認証できるようにキーサーバーを有効化します。

インストール

これらの手順は Cloudflare パッケージリポジトリ にもあります。

Debian/Ubuntu パッケージ

sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless trixie main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless bookworm main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless noble main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless jammy main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless focal main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless

RHEL/CentOS/Amazon Linux パッケージ

Gokeyless は PKCS#11/HSM 対応のために CGO を使うため、glibc への依存が発生します。ディストリビューションに合ったリポジトリを使ってください。

sudo dnf config-manager --add-repo https://pkg.cloudflare.com/gokeyless/rpm/gokeyless.repo
sudo dnf install gokeyless
curl -fsSl https://pkg.cloudflare.com/gokeyless/rpm/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeyless
sudo dnf config-manager --add-repo https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo
sudo dnf install gokeyless
curl -fsSl https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeyless

設定

Cloudflare アカウントの詳細を、/etc/keyless/gokeyless.yaml にある設定ファイルに追加します。

  1. キーサーバーのホスト名を設定します。例: 11aa40b4a5db06d4889e48e2f.example.com。これは Keyless 証明書をアップロードしたときに入力した値でもあり、この証明書の鍵を保持するキーサーバーのホスト名です。

  2. Zone ID を設定します(Cloudflare ダッシュボードの Overview タブにあります)。

  3. サーバー証明書の登録用の認証資格情報を設定します。gokeyless は次の 2 つのオプションに対応しています。

    • API トークン(推奨): Zone > SSL and Certificates > Edit 権限を持つ API トークンを作成 します。設定に次のように指定します。

      api_token: "<YOUR_API_TOKEN>"

      または環境変数 KEYLESS_API_TOKEN を使います。

    • Origin CA API キー(非推奨): Origin CA API キーを設定 します。このオプションは 2026 年 9 月 30 日に動作を停止します。

キーの格納

秘密鍵を /etc/keyless/keys/ にインストールし、ユーザーとグループを keyless、パーミッションを 400 に設定します。キーは PEM または DER 形式で、拡張子は .key である必要があります。

ls -l /etc/keyless/keys
-r-------- 1 keyless keyless 1675 Nov 18 16:44 example.com.key

複数のキーサーバーを運用する場合は、必要なキーを各キーサーバーに配布してください。お客様は通常、Salt や Puppet などの構成管理ツールでキーを配布するか、キーサーバーだけがアクセスできるネットワーク上の場所に /etc/keyless/keys をマウントします。キーは起動時にメモリへ読み込まれるため、gokeyless プロセスの開始 / 再起動時にそのネットワークパスへアクセスできる必要があります。

有効化

有効化するには、keyless インスタンスを再起動します。

  • systemd: sudo service gokeyless restart
  • upstart/sysvinit: sudo /etc/init.d/gokeyless restart

このコマンドが失敗した場合は、ログの確認 でトラブルシューティングしてください。

Cloudflare からの受信接続を許可する

TLS ハンドシェイク中、Cloudflare の keyless クライアントは、証明書のアップロード時に指定した鍵サーバーのホスト名または IP アドレスへ接続を開始します。デフォルトの宛先 TCP ポートは 2407 です。この値は、証明書のアップロード時、またはアップロード後に証明書の詳細を編集して変更できます。

鍵サーバーが Cloudflare からの接続だけを受け付けるよう、WAF カスタムルールを作成します。Cloudflare の IPv4 および IPv6 アドレスは、IP details API エンドポイント で取得できます。

役に立ちましたか?