作成開始 : 令和7年(2026年)07月10日(金)  最終更新 : 令和7年(2026年)07月14日(火) 

FreeBSDのApache24を Cloudflare Zero Trust Tunnel 対応にしてみた。


プロバイダ : ぷらら の頃にダイナミックDNSを使って FreeBSDのApache24(portsからインストール)を使い、 Let's Encrypt(レッツエンクリプト)の SSL証明書で自宅サーバーを公開していました。
しかし、良く調べもせず フレッツ光 ネクスト(100Mbps) からフレッツ光 クロス 10G に変更し プロバイダ : AsahiNet にしました。
フレッツ光 クロス 10G + では AsahiNet では IPv6 のため PPPoEが使えないので自宅サーバー公開を一時断念していました。
その後、
Cloudflare Zero Trust Tunnel で無事に自宅サーバーを公開できました。
メインのWebサーバーは実機上で稼働しています。
そのバックアップとしてプロバイダ : ぷらら の頃に使っていたWebサーバーの仮想マシン(VirtualBoxのやつ)を最近構築した VirtualBoxにインポートしました。
そのため、この仮想マシンのApache24はSSL対応していたので Cloudflare Zero Trust Tunnel 用に変更してみました。

1.https(SSL)対応のリマーク
/usr/local/etc/apache24/httpd.conf を修正します。
作業は root でします。
(1) LoadModule ssl_module libexec/apache24/mod_ssl.so をリマークします。
LoadModule ssl_module libexec/apache24/mod_ssl.so
  ↓
# LoadModule ssl_module libexec/apache24/mod_ssl.so
(2)Include etc/apache24/extra/httpd-ssl.conf をリマークします。
Include etc/apache24/extra/httpd-ssl.conf
  ↓
# Include etc/apache24/extra/httpd-ssl.conf
2.http対応
ドキュメントを再利用するため以下実施(/usr3/httpd/sslにドキュメント置いてました)
# DocumentRoot "/usr3/httpd/html"
  ↓
DocumentRoot "/usr3/httpd/ssl"

<Directory "/usr3/httpd/html">
  ↓
<Directory "/usr3/httpd/ssl">
3.Cloudflare Zero Trust Tunnel 対応
(1)リモートIP取得のため以下対応
# LoadModule remoteip_module libexec/apache24/mod_remoteip.so
  ↓
LoadModule remoteip_module libexec/apache24/mod_remoteip.so
(2)ログに(実際の)リモートホストを出力
 # LogFormat "%h %l %u %t \"%r\" %>s %b" common
  ↓
 LogFormat "%a %l %u %t \"%r\" %>s %b" common
(3)バーチャルホスト利用のため以下対応
# Include etc/apache24/extra/httpd-vhosts.conf
  ↓
Include etc/apache24/extra/httpd-vhosts.conf
(4)バーチャルホスト編集
/usr/local/etc/apache24/extra/httpd-vhosts.conf を編集

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr3/httpd/ssl"
    # Use CF-Connecting-IP for the actual visitor IP
    RemoteIPHeader CF-Connecting-IP
    # ServerName dummy-host.example.com
    # ServerAlias www.dummy-host.example.com
    ErrorLog "/var/log/httpd-error.log"
    CustomLog "/var/log/httpd-access.log" common
</VirtualHost>
RemoteIPHeader CF-Connecting-IP がミソです。
これで、実際のIPアドレスを取得することができます。
これが無いと、Cloudflare Zero Trust Tunnelとの接続をしている LAN上のPCのIPアドレスになってしまいます。
以上が終わったら service apache24 restart して実際にアクセスし確認します。
しばらくぶりに FreeBSDのApacheいじったら色々と戸惑いました。
ここしばらく q4os(debianベース)のApacheだったので・・・😥


  ↑
こんなんで動かしてます。
もう少しコンテンツを調整し、メインの仮想マシンを稼働させる実機が手に入ったら、ここからVMをエクスポートしてインポートの予定です。
ただ、コンソールに以下のメッセージが5分おきくらいに出ます。
実害は無いのですが、何とも気になるので色々調べましたが対処かなわずです。

以下のは、ログです。

/var/log/samba4/log.nmbd

[2026/07/11 18:15:14.939615,  0] ../../source3/nmbd/nmbd_namequery.c:109(query_name_response)
  query_name_response: Multiple (2) responses received for a query on subnet 192.168.1.20 for name SENDAI<1d>.
  This response was from IP 192.168.1.11, reporting an IP address of 192.168.1.11.

VMのFreeBSDは 192.168.1.20 です。192.168.1.11 はメインの仮想マシンを稼働させる実機です。
この時 192.168.1.11 はマスターブラウザになっています。
なんか、マスターブラウザの取り合いになっているような・・・

/var/log/samba4/log.smbd

[2026/07/11 17:44:45.372458,  0] ../../source3/smbd/server.c:1784(main)
  smbd version 4.13.1 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2020
[2026/07/11 17:44:52.003129,  0] ../../lib/util/become_daemon.c:136(daemon_ready)
  daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
※こっちはVM起動時に1回だけ出ます。

どうにも解決できなかったので以下で止めました。

[global] セクションに以下のパラメータを追加または変更します。

# ログレベルを最も低い「0」にし、致命的なエラーのみ記録する
 log level = 0

 # syslogへ出力するログレベルも「0」に設定
syslog = 0

ログファイルの最大サイズ(
max log size)は設定済です。


戻る

サイトトップへ