通常のSSL運用は、次の作業の繰り返しです。
- 証明書の有効期限管理
- 更新申請(ACME / 手動)
- 秘密鍵管理
- サーバへの再配置・ サービス再起動
- トラブル対応(失効・中間証明書など)
特に外部の認証局(外部CA)から証明書を購入するとなると手続きが複雑でけっこうな手間になりますが、インターネットに公開して不特定多数のユーザに公開するサービスでは、どうしても必要になると思います。
実は、認証局は組織内で立ち上げが可能
一方で、イントラネットにおいて社内端末のみを対象としたWebアプリケーションをホストする場合には、組織内に立てた認証局(内部CA)にサーバ証明書の発行を任せるという方法をとることで、外部CAによるサーバ証明書発行を不要にすることができます。
社内に認証局を立てるというと、なにか大げさで大変なことのようにも思えますが必ずしもそうではありません。下記のような二つの方法があります。
- FileBlogサーバのサーバ証明書自動発行機能を使う
- オープンソースのACMEサーバを組織内で立ち上げる
オープンソースのACMEサーバ(内部CA)としては、step-ca が一般的ですが本文書では詳しくは触れません。本文書ではFileBlogサーバを内部CAとして利用する方法について詳しく紹介します。
社内CA運用のメリットとデメリット
社内CA運用のメリットは次のようなものです。
- 証明書発行の費用が不要
- 証明書発行のためのドメイン所有権の証明手続きなどが不要
- インターネット接続のない閉じたネットワーク内でも証明書発行が可能
社内CA運用のデメリットは証明書の配布につきます。
- 社内CA(証明局)のルート証明書を「信頼されるルート証明書」としてブラウザに認めさせるため、すべてのクライアント端末に配布・登録することが必要です。Windows Active Directoryドメイン環境であればグループポリシーを介して組織管理の各PCへ自動配布が可能です。また、ルート証明書の有効期限はサーバ証明書と比べて長く、数年間以上でもかまいません。
- iOS・AndroidなどWindows以外のプラットフォームの端末へのルート証明書の配布は、専用のMDM製品なしには自動化が難しくかなり面倒です。
- 個人購入デバイスでの利用(BYOD)を想定した場合にも、社内CAでの運用はお勧めしません。
どちらを選ぶのがよいか
内部CAで運用できるケース: 内部CAの利用検討に価値があるのは、基本的にWindows Acrive Directoryドメイン内の社有PCのみからアクセスする場合です。
| ケース | 想定される運用方法 |
|---|---|
| FileBlogのみでHTTPSを利用する場合 | FileBlogを内部CAとして証明書自動発行機能を使う |
| FileBlogと少数のアプリでHTTPSを使う場合 | FileBlogの内部CAを使う FileBlogのリバースプロキシ機能で他のアプリも公開 |
| 多数の社内アプリでHTTPS運用する場合 | step-ca (オープンソースのACMEサーバ)を内部CAとして証明書自動発行 |
外部CAが必要になるケース:
| ケース | 想定される運用方法 |
|---|---|
| 少数のサーバをインターネット公開して、社外ユーザや社員個人端末から利用する場合 | 社外CAが発行するサーバ証明書利用 |
| 多数のサーバをインターネット公開して、不特定多数の端末から利用する場合 | 社外CAが発行するワイルドカード証明書利用 |
FileBlog 内部CAの使い方
仕組み
FileBlogサーバには標準で用意される内部CA機能があり、この機能を有効化することで内部CAを立ち上げるとともに、Webサーバを再起動するたびに内部CAが新しいサーバ証明書を発行するようになります。
これにより、サーバ証明書の有効期間が47日に短縮されても毎月一回のWebサーバ再起動で、そのたびに新しい証明書の有効期間が延長され運用を継続できます。
設定方法概要
内部CAのセットアップ
- 内部CA・SSLサーバ証明書自動発行機能を有効化する
- ルート証明書を生成する: ここで生成されたルート証明書をダウンロードして各クライアントに配布します
- サーバ証明書の有効期間を設定する: ブラウザが許す範囲で設定してください。現時点では90日程度でも問題ありませんが、2029年3月以降もそのまま運用できるようにするには47日以内にしてください。
定期的なWebサーバ再起動のスケジュール
Fb5Webサービスの再起動を定期的に次のいずれか方法でスケジュールします。
- FileBlogタスクスケジューラでWebサーバ再起動をスケジュールする
- Windowsタスクスケジュールにバッチファイルを登録する
再起動の間隔はサーバ証明書の有効期間の長さよりも短くします。たとえば有効期間が47日なら、1ヶ月に1回の再起動を行ってください。
ルート証明書の配布
これだけが面倒なところです。これについては後のセクションで詳細に説明します。
内部CAのルート証明書を生成する
FileBlogマニュアル「自己署名証明書の利用」も参照してください。
https://manual.teppi.net/helpfb/operation/selfsignedcertificate.html
FileBlog5管理ツール上で操作します。

「ルート証明書を作成する」ボタンを押します。パスワードは適当に付与しますが、秘密鍵を守るためのものでFileBlogサーバ起動に必要となるため、設定項目 WebServer/Kestrel/Https/AutoCertificateMode/RootCertificate/Password に保存されます。

OKの選択で内部CAの秘密鍵とルート証明書が作成されます。ルート証明書と秘密鍵は、FileBlogサーバの設定 WebServer/Kestrel/Https/AutoCertificateMode/RootCertificate/CertificatePlain に埋め込まれて保存されます。pfxファイル(PKCS#12形式)としてダウンロードすることができます。
ルート証明書の配布
ルート証明書のダウンロード
「ルート証明書インストール用ファイルをダウンロード」を押すと、ZIPファイルがダウンロードされます。このファイル内には、各端末PCの証明書ストアに「信頼されたルート証明書」を追加するため、PCの管理者権限で実行するスクリプトと証明書ファイル(certificate.cerファイル)が含まれます。
特定端末PCにルート証明書をインストールするには
ルート証明書インストール用ZIPファイルをクライアントPC上で展開したうえで、install.batを管理者権限で実行します。そのPCの証明書ストアにルート証明書がインストールされます。対象端末の数が少ない場合には、この手順を繰り返すだけでもよいでしょう。
ドメイン管理PCにルート証明書を配布するには
Windows Active Directoryドメイン環境では、グループポリシーを作成することでドメインに参加しているコンピュータにルート証明書を自動配布できます。
ドメインコントローラ上で、gpmc.mscでグループポリシーの管理画面を開き、新規グループポリシーを作成

グループポリシーオブジェクトを編集

以下に移動
コンピューターの構成
→ ポリシー
→ Windows の設定
→ セキュリティの設定
→ 公開キーのポリシー
→ 信頼されたルート証明機関
インポートで、FileBlog管理画面からダウンロードしたルート証明書(certificate.cer)ファイルを取り込みます。





グループポリシーを、配布先コンピュータが所属するOUにリンクさせておいてください。
あとはグループポリシーが適用されるのを待てば、各PCに配布が完了します。

