SSLならセクティゴ・コモドのEV・企業・ドメイン認証

SSLならセクティゴ・コモドのEV・企業・ドメイン認証

サポート


こちらからサポート記事を検索いただけます

検索キーワード:

トラブルシューティング (CaaS関連)

FileMaker ServerでCertbotを使用しSSL証明書を自動更新する場合

FileMaker ServerでCertbotを使用してSSL証明書を自動更新運用をする場合、最大の問題は 「FileMaker がポート 80 (HTTP) を既定値で専有していること」 です。これを回避するため、証明書更新時のみ一時的にサービスを止める必要があります(瞬断)証明書を取得した後にFileMakerのコマンドラインツール(fmsadmin)を使って証明書をインポートし、サーバーを再起動(またはプロセス適用)させる必要があります。

自動化するために、Certbotで取得コマンドが走る前に「一時停止方式」で--pre-hookスクリプトを走らせ取得後に --deploy-hook 機能を利用したポストスクリプト(証明書自動取得後にFMSにインストールさせるプログラム)を作成するのが一般的ですがWEBサーバーを停止させたくない場合、ポート 80 を使わない DNS-01 チャレンジ(お使いのDNSプロバイダのAPIを利用)が推奨されます。これなら IIS や Apache Nginxを止める必要がありません。

1. ポストスクリプトの作成(シェルスクリプト例)

UNIX系(LINUX MAC FREE-BSD) 環境を想定したスクリプト例です。このスクリプトは、Certbotが新しい証明書を正常に取得した直後に実行されます。

/usr/local/bin/fms-cert-deploy.sh として保存してください。

#!/bin/bash

# 設定:ドメイン名を指定
DOMAIN="your.domain.com"
CERT_PATH="/etc/letsencrypt/live/$DOMAIN"

# 1. FileMaker Serverへ証明書をインポート
# -y は自動承認、-u と -p は管理コンソールの資格情報
# ※パスワードを直書きしたくない場合は、環境変数や設定ファイルを利用してください
fmsadmin certificate import "$CERT_PATH/fullchain.pem" \
--keyfile "$CERT_PATH/privkey.pem" \
-y -u [管理ユーザー名] -p [パスワード]

# 2. FileMaker Server のプロセスに反映させるためHTTPSサーバーを再起動
# (FileMaker 19.x 以降であれば、基本的にはインポートコマンドで反映されますが、
# 確実に反映させるために再起動を推奨する場合があります)

fmsadmin restart httpserver -y


スクリプトの権限設定

実行権限を付与するのを忘れないようにしてください。

sudo chmod +x /usr/local/bin/fms-cert-deploy.sh

2.Certbot の実行コマンド

証明書を取得・更新する際に、上記のスクリプトを --deploy-hook に指定します。

Bash

sudo certbot certonly --standalone \
-d your.domain.com \
--deploy-hook "/usr/local/bin/fms-cert-deploy.sh"

重要な注意点

ポートの競合 certonly --standalone を使用する場合、Certbotが一時的に 80番ポート を使用します。FileMaker ServerのWeb公開機能が80番を使っている場合、一時的に競合するため、--pre-hook でWebサーバーを止め、--post-hook で再開させる処理が必要になる場合があります。
DNS-01方式を採用する場合には--pre-hookは不要です
権限 fmsadmin コマンドを実行するには、通常 root または fmsadmin グループの権限が必要です。
セキュリティ スクリプト内にパスワードを記述する場合、ファイルのパーミッションを厳格に管理(例: chmod 700)し、所有者を root にすることをお勧めします。

Windows Server の場合

Windows環境(PowerShell)で行う場合は、同様のロジックを .ps1 ファイルで作成し、Certbotの --deploy-hook でそのスクリプトを呼び出し自動取得した証明書鍵ペアをfmsadminでインポートさせる形になります。

PowerShell

# PowerShellの例
fmsadmin certificate import "C:\Certbot\live\your.domain.com\fullchain.pem" `
--keyfile "C:\Certbot\live\your.domain.com\privkey.pem" `
-y -u user -p pass

サポートトップへ

CaaSとは

注文・設定方法など

トラブルシューティング

その他