通常の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製品なしには自動化が難しく、かなり面倒です。
- 個人購入デバイスでの利用を想定した場合にも、社内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サーバ再起動のスケジュール
FileBlogタスクスケジューラでWebサーバ再起動をスケジュールするか、Windowsタスクスケジュールにバッチファイルを登録するか、いずれにせよFb5Webサービスの再起動を定期的にスケジュールしてください。
再起動の間隔は、サーバ証明書の有効期間の長さよりも短くする必要があります。たとえば有効期間が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に配布が完了します。


