Teruhiro Komaki's Blog (Temporary)

FileMaker ServerにLet's EncryptのSSL証明書を設定する

FileMaker Server(Windows Server)にLet’s EncryptのSSL証明書を設定する際のメモ。

FileMakerでは、Let’s Encryptはサポートされていないため、すべて自己責任でチャレンジしてください。

更新

2019-02-02

以下の記事を書きましたので、よろしければご覧ください。

legoを使ってLet’s EncryptのSSL証明書をDNS認証で発行しFileMaker Serverに設定する方法


作業自体は簡単ですので、開発環境で使う場合など、チャレンジするのは良いと思います。

ちなみに、私はLet’s Encryptを利用しています。

環境

作業の前にやったこと

ドメイン

Windows Server

Windows Server IISを設定する

IISを確認する

サーバーマネージャーからインターネットインフォメーションサービス(IIS)マネージャーを選択する。

FileMaker SSL

画面左の接続からサイト > FMWebSiteを選択する。

画面右の操作からバインドを選択する。

FileMaker SSL

サイトバインドを設定する

FileMaker Serverがインストールされているので、ポート(16000)も設定されています。

ポート80の行を選択し編集を選択します。(もしくはダブルクリック)

FileMaker SSL

ホスト名にhoge.frudens.appを入力します。

80と同じように44316000も、hoge.frudens.appを入力します。

FileMaker SSL

Let’s Encryptを実行するための準備

win-acmeのダウンロード

win-acmeは、Let’s Encryptの証明書の発行作業を、コマンドラインから簡単に実行するためのCLIツールです。

ということで、ダウンロードし展開しましょう。

https://github.com/PKISharp/win-acme/releases

展開する場所はどこでも大丈夫です。今回、私はデスクトップに展開しました。

Webサーバのルートにフォルダを作成する

FileMaker Serverをインストールしたフォルダによってルートは変わりますが、デフォルトの場合は以下のフォルダがWebサーバのルートになるはずです。

1C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf

confの下が.well-known/acme-challengeとなるようにフォルダを作成します。

Windowsだと、GUIからでは.フォルダが作れないと思いますので、コマンドプロンプトなど使ってmkdirしてください。

1C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\.well-known\acme-challenge

以下のような感じになると思います。

FileMaker SSL

Let’s Encryptのファイルを移動しrenameする

win-acmeを展開したフォルダの中にあるWeb_Config.xmlを、上記で作成したフォルダ\acme-challenge\に移動し、web.configにrenameします。

こんな感じのイメージです。

FileMaker SSL

letsencrypt.exeを実行する

準備が整いましたのでletsencrypt.exeを実行します。

CLIツールが起動します。

FileMaker SSL

CLIツールの質問に従い、順番に入力していくと完了します。

 1 [INFO] A Simple ACME Client for Windows (WACS)
 2 [INFO] Software version 1911.2.6726.40690 (RELEASE)
 3 [INFO] IIS version 10.0
 4 [INFO] ACME server https://acme-v01.api.letsencrypt.org/
 5 [INFO] Please report issues at https://github.com/PKISharp/win-acme
 6
 7 N: Create new certificate
 8 M: Create new certificate with advanced options
 9 L: List scheduled renewals
10 R: Renew scheduled
11 S: Renew specific
12 A: Renew *all*
13 V: Revoke certificate
14 C: Cancel scheduled renewal
15 X: Cancel *all* scheduled renewals
16 Q: Quit
17
18 Please choose from the menu: n
19
20 [INFO] Running in Simple mode
21
22 1: Single binding of an IIS site
23 2: SAN certificate for all bindings of an IIS site
24 3: SAN certificate for all bindings of multiple IIS sites
25 4: Manually input host names
26 C: Cancel
27
28 Which kind of certificate would you like to create?: 2
29
30 1: FMWebSite
31 C: Cancel
32
33 Choose site: 1
34
35 * hoge.frudens.app
36
37 Press enter to include all listed hosts, or type a comma-separated lists of exclusions:
38
39 [INFO] Plugin IISSite generated target [IISSite] FMWebSite (SiteId 2) [1 binding - hoge.frudens.app @ C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\]
40 [INFO] Authorize identifier: hoge.frudens.app
41 [INFO] Cached authorization result: valid
42 [INFO] Requesting certificate FMWebSite 2018/9/15 15:03:41 ??
43 [INFO] Saving certificate to C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org
44 [INFO] Installing certificate in the certificate store
45 [INFO] Adding certificate FMWebSite 2018/9/15 15:03:41 ?? to store WebHosting
46 [INFO] Installing with IIS...
47 [INFO] Updating existing https binding hoge.frudens.app:443
48 [INFO] Updating existing https binding hoge.frudens.app:16000
49 [INFO] Committing 2 https binding changes to IIS
50 [INFO] IIS will serve the new certificates after the Application Pool IdleTimeout has been reached.
51 [INFO] Uninstalling certificate from the certificate store
52 [INFO] Removing certificate FMWebSite 2018/9/14 23:35:40 ?? from store WebHosting
53 [INFO] Renewal for FMWebSite succeeded
54 [INFO] Next renewal scheduled at 2018/11/9 6:03:44 ??
55
56 N: Create new certificate
57 M: Create new certificate with advanced options
58 L: List scheduled renewals
59 R: Renew scheduled
60 S: Renew specific
61 A: Renew *all*
62 V: Revoke certificate
63 C: Cancel scheduled renewal
64 X: Cancel *all* scheduled renewals
65 Q: Quit
66
67 Please choose from the menu: q

最初から最後までの実際の画像を…

上記のテキストと画像は同じものではないので、時間など若干違いますが、気にしないでください。

FileMaker SSL

IISのサイトバインドを確認する

完了しましたので、IISのバインドを確認します。

SSL 証明書の部分に表示されています。

FileMaker SSL

httpsでアクセスする

試しにhttps://hoge.frudens.appにアクセスしてみます。

証明書も認識しています。

FileMaker SSL

証明書をFileMaker Serverにインストールする

さきほど作成した証明書をFileMaker Serverにインポートします。

証明書の場所

作成された証明書は、以下のフォルダにあります。

1C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\
 1C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org>dir
 2 Volume in drive C has no label.
 3 Volume Serial Number is D8A2-01B9
 4
 5 Directory of C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org
 6
 72018/09/15  15:03    <DIR>          .
 82018/09/15  15:03    <DIR>          ..
 92018/09/15  15:03             1,174 ca-FMWebSite-crt.der
102018/09/15  15:03             1,674 ca-FMWebSite-crt.pem
112018/09/15  15:03             3,378 FMWebSite-all.pfx
122018/09/15  15:03             3,864 FMWebSite-chain.pem
132018/09/15  15:03             1,550 FMWebSite-crt.der
142018/09/15  15:03             2,190 FMWebSite-crt.pem
152018/09/15  15:03             1,006 FMWebSite-csr.pem
162018/09/15  15:03             1,050 FMWebSite-gen-csr.json
172018/09/15  15:03             1,807 FMWebSite-gen-key.json
182018/09/15  15:03             1,702 FMWebSite-key.pem
192018/09/15  15:03               542 FMWebSite.history.json
202018/09/14  01:08             1,015 Registration
212018/09/15  15:03               420 Renewals
222018/09/14  01:08             1,679 Signer
23              14 File(s)         23,051 bytes
24               2 Dir(s)  30,963,933,184 bytes free

FileMaker SSL

インポートする

Admin Consoleにログインし、SSL証明書のインポートをします。

fmsadminコマンドを使ってインポートしてもよいです。(最後の方にコマンドは書いています。)

ファイル ファイル名
署名済みの証明書ファイル FMWebSite-crt.pem
プライベートキーファイル FMWebSite-key.pem
中間証明書ファイル FMWebSite-chain.pem

FileMaker SSL

インポートできました。

FileMaker SSL

インポートできたので、再起動します。

FileMaker SSL

FileMakerからアクセスする

アクセスしてみます。

緑色になっています。

FileMaker SSL

ロックアイコンをクリックすると、証明書が表示されます。

FileMaker SSL

SSL証明書の更新作業(renew)の自動化

Let’s EncryptのSSL証明書の有効期限は、3ヶ月間です。

自動的にrenewコマンドを実行してほしいので、タスクスケジューラに登録します。

(私の環境では、自動的にタスクスケジューラに登録されていました。)

FileMaker SSL

タスクスケジューラにrenewを登録する

もし、登録されていないようでしたら、簡単にコマンドで設定できるようです。

自分でバッチを作っても良いと思います。

Windows Task Scheduler Settings

1Microsoft Windows [Version 10.0.14393]
2(c) 2016 Microsoft Corporation. All rights reserved.
3
4C:\Users\user>C:\Users\user\Desktop\win-acme.v1.9.11.2\letsencrypt.exe --renew --baseuri "https://hoge.frudens.app"

FileMaker Serverへのインポートの自動化

上記の作業ではC:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\にある、証明書が更新されるのみですので、FileMaker Serverの証明書は更新されません。

ということで、FileMaker Serverの証明書を更新する作業をfmsadminコマンドで書いてバッチファイルにしておけば、タイミングを見てダブルクリックで手軽に更新できます。

FileMaker Serverのrestartもあるので、メンテナンスの際に実行するのが良いと思います。

(削除してから、インポートする必要があります。)

fmsadmin certificate delete

1fmsadmin certificate delete -y -u USER -p PASSWORD

fmsadmin certificate import

1fmsadmin certificate import C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\FMWebSite-crt.pem --keyfile C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\FMWebSite-key.pem --intermediateCA C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\FMWebSite-chain.pem -y -u USER -p PASSWORD

セキュリティについて

今回の作業時には、FileMaker Serverのポート(80, 443など)を開ける必要があります。

Data APIを使う場合などは、443を開ける必要はあるかもしれませんが、基本的には開けないほうが良いです。

そのため、作業終了時には、ポートやファイアーウォールを適切な状態に戻しておきましょう。

当然ですが、更新の際にはポートを開ける必要があります。

FileMaker製品でサポートされるSSL証明書

FileMaker製品でサポートされるSSL証明書を購入する場合は、以下のリンクを参照してください。

FileMaker製品でサポートされるSSLサーバー証明書の販売元と種類の一覧

あとがき

Let’s Encrypt は「安全なのか?」みたいな話をする人もいるかも知れませんが、個人的には問題ないと思っています。

ご自身でググってください。

参考

https://www.emic.co.jp/fmpress/services/ssl/

https://twitter.com/HiromitsuTakagi/status/1004013636883382274

上場企業やgo.jpドメインでもLet’s Encryptのサーバ証明書の利用が広がる

改めて知ろう、SSLサーバー証明書とは?(第二回)

Tags:
comments powered by Disqus