メインコンテンツへスキップ

手順

以下の手順では、無料で自動化されたオープンな認証局 (CA) である Let’s Encrypt を使用して、単一の ClickHouse サーバー で SSL を有効にする方法を説明します。Let’s Encrypt は、誰でも HTTPS で Web サイトを簡単に保護できるように設計されています。証明書の発行と更新を自動化することで、手動での介入なしに Web サイトの安全性を維持できます。
このガイドでは、ClickHouse が標準的なパッケージのインストール先に配置されていることを前提としています。すべての例では、ドメイン product-test-server.clickhouse-dev.com を使用します。必要に応じてご自身のドメインに置き換えてください。
  1. サーバーを指す DNS A または AAAA レコードが存在することを確認します。これは Linux のツール dig. を使って確認できます。たとえば、Cloudflare の DNS サーバー 1.1.1.1 を使用した場合、product-test-server.clickhouse-dev.com に対する応答は次のようになります。

以下のセクションで、A レコードが存在することを確認します。
  1. サーバーでポート80を開放します。このポートは、certbot が ACME プロトコルを使用して証明書を自動更新する際に使われます。AWS では、インスタンスに関連付けられているセキュリティグループを変更することで対応できます。

  1. certbot をインストールします (例: apt を使用)

  1. SSL証明書を取得する

サーバー上では Web サーバーを稼働させていないため、(1) を選択して、Certbot が standalone の一時的な Web サーバーを使用できるようにします。
求められたら、サーバーの完全修飾ドメイン名 (例: product-test-server.clickhouse-dev.com) を入力します。
Let’s Encrypt には、特定の種類のドメイン (たとえば、パブリッククラウドプロバイダーが生成したドメイン (例: AWS *.compute.amazonaws.com ドメイン) ) に対して証明書を発行しないポリシーがあります。これらのドメインは共有インフラストラクチャと見なされ、セキュリティおよび不正利用防止の観点からブロックされています。
  1. 証明書を ClickHouse ディレクトリにコピーします。

このコマンドは、ClickHouse サーバー の Let’s Encrypt SSL 証明書の管理を自動化するための cron ジョブを設定します。このジョブは root ユーザーとして毎分実行され、Let’s Encrypt ディレクトリから ClickHouse サーバー の設定ディレクトリへ .pem ファイルをコピーしますが、ファイルが更新されている場合にのみコピーを行います。コピー後、スクリプトはファイルの所有者とグループを clickhouse ユーザーおよびグループに変更し、server が必要なアクセス権を持てるようにします。さらに、厳格なファイルセキュリティを維持するため、コピーしたファイルに安全な読み取り専用権限 (chmod 400) を設定します。これにより、ClickHouse サーバー は手動操作なしで常に最新の SSL 証明書にアクセスできるようになり、セキュリティを維持しながら運用負荷を最小限に抑えられます。
  1. clickhouse-server でこれらの証明書を使用するように設定します。

  1. ClickHouseサーバーを再起動する

  1. ClickHouse が SSL 経由で通信できることを確認する

この最後の手順を機能させるには、ポート 8443 にアクセスできるようにしておく必要がある場合があります。たとえば、AWS のセキュリティグループで許可してください。あるいは、ClickHouse へのアクセスをサーバーからのみにしたい場合は、hosts ファイルを次のように変更します。
ワイルドカードアドレスからの接続を許可する場合は、少なくとも次のいずれかの対策を講じてください。
  • サーバーがファイアウォールで保護されており、信頼できないネットワークからアクセスできないこと。
  • すべてのユーザーのアクセス元が、ネットワークアドレスの一部に制限されていること (users.xml を参照) 。
  • すべてのユーザーに十分に強力なパスワードが設定されており、安全な (TLS) インターフェイスのみが公開されていること、または接続が TLS インターフェイス経由に限定されていること。
  • パスワードのないユーザーは読み取り専用アクセスであること。
関連項目: https://www.shodan.io/search?query=clickhouseブログ Building single page applications with ClickHouse は、公開インスタンスを保護する際の参考になります。
以下は、ClickHouse が実行されているローカルマシンから接続する場合でも機能するはずです。product-test-server.clickhouse-dev.com 経由で接続するには、使用している環境でポート 9440 を開いてください。
最終更新日 2026年6月12日