中間 CA 証明書が複数ファイルで提供される場合、それらを1 つのファイルに連結してサーバへ配置します。これは「証明書チェーン」と呼ばれる構造で、各証明書を順番に結合することで、ブラウザがルートまでの信頼関係を辿れるようになります。本ページでは連結方法と注意点を解説します。
- 複数の中間証明書は 1 つのファイルに連結して使用
- 連結順はサーバ証明書に近い順(下位 → 上位)
- テキストエディタで PEM 形式のまま結合するだけで OK
🔍 中間証明書とは
SSL/TLS 証明書は「サーバ証明書 → 中間 CA 証明書 → ルート CA 証明書」という階層構造で信頼性を担保しています。認証局によっては中間 CA 証明書が複数階層に分かれており、その場合はすべての中間証明書をサーバに配置する必要があります。
┌─────────────────────────┐
│ ルート CA 証明書 │ ← ブラウザに事前インストール済み
└────────┬────────────────┘
│ 署名
↓
┌─────────────────────────┐
│ 中間 CA 証明書 2(上位) │ ← 連結ファイルの後ろ
└────────┬────────────────┘
│ 署名
↓
┌─────────────────────────┐
│ 中間 CA 証明書 1(下位) │ ← 連結ファイルの前
└────────┬────────────────┘
│ 署名
↓
┌─────────────────────────┐
│ サーバ証明書 │ ← サーバに配置
└─────────────────────────┘
📋 連結手順
-
中間証明書ファイルをテキストエディタで開く
すべての中間 CA 証明書ファイル(
.crt/.pem)をメモ帳・VS Code・vim 等のテキストエディタで開きます。 -
PEM 形式を確認
各ファイルの中身が
-----BEGIN CERTIFICATE-----で始まり、-----END CERTIFICATE-----で終わっていることを確認します。 -
下位の中間証明書を先に
新しいファイルを作成し、サーバ証明書に近い(下位の)中間証明書を先頭に貼り付けます。
-
上位の中間証明書を続けて貼り付け
下位の中間証明書の
-----END CERTIFICATE-----の直後に、上位の中間証明書を続けて貼り付けます。 -
ファイル保存
任意のファイル名(例:
intermediate.crt/chain.pem)で保存します。
📄 連結後のフォーマット例
連結後の中間証明書ファイルは、以下のような形式になります。
-----BEGIN CERTIFICATE-----
・中間 CA 証明書 1(下位・サーバ証明書側)の文字列
・MIIE...(Base64 エンコードされた証明書本体)
・...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
・中間 CA 証明書 2(上位・ルート側)の文字列
・MIIF...(Base64 エンコードされた証明書本体)
・...
-----END CERTIFICATE-----
連結する順序を間違えると、ブラウザでチェーン検証エラーが発生する場合があります。必ずサーバ証明書側(下位)から順に配置してください。
💻 コマンドラインで連結する方法
テキストエディタで作業する代わりに、コマンドラインで連結することもできます。
Linux / macOS の場合
# cat コマンドで複数の中間証明書を連結
cat intermediate1.crt intermediate2.crt > chain.crt
# または sub.crt が下位、ca.crt が上位の場合
cat sub.crt ca.crt > intermediate.crt
Windows の場合(コマンドプロンプト)
type intermediate1.crt intermediate2.crt > chain.crt
Windows の場合(PowerShell)
Get-Content intermediate1.crt, intermediate2.crt | Set-Content chain.crt
🔧 サーバ設定例
Apache の場合
# Apache 2.4.7 以前(中間証明書を別ファイルで指定)
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/private.key
SSLCertificateChainFile /path/to/chain.crt ← 連結した中間証明書
# Apache 2.4.8 以降(フルチェーンで指定)
SSLCertificateFile /path/to/fullchain.crt ← cert.crt + chain.crt
SSLCertificateKeyFile /path/to/private.key
Nginx の場合
# フルチェーン形式で指定(サーバ証明書 + 連結した中間証明書)
ssl_certificate /path/to/fullchain.crt;
ssl_certificate_key /path/to/private.key;
Nginx や新しい Apache では「フルチェーン」形式が便利です。サーバ証明書と連結した中間証明書をさらに連結すれば、1 ファイルで証明書チェーン全体を表現できます。
cat cert.crt chain.crt > fullchain.crt
ACME 自動更新では、このフルチェーンファイルが自動生成されます。
🔍 連結結果の確認方法
方法 1:OpenSSL で確認
# 連結ファイル内の証明書数を確認
grep -c "BEGIN CERTIFICATE" chain.crt
# 連結された証明書の Subject を 1 つずつ確認
openssl crl2pkcs7 -nocrl -certfile chain.crt | openssl pkcs7 -print_certs -noout
方法 2:SSL Labs で確認
サーバへ配置後、SSL Labs SSL Test でチェーンの状態を確認できます。「Chain issues」が「None」になっていれば OK です。
方法 3:当店ツールで確認
当店の 証明書解析ツール から連結ファイルの内容を確認できます。
⚠️ よくあるトラブル
| 症状 | 原因 | 対処法 |
|---|---|---|
| 連結後にブラウザで警告が出る | 連結順序が逆 | 下位 → 上位の順に並べ替え |
| Apache でファイル読み込みエラー | PEM 形式が破損 | BEGIN/END CERTIFICATE の前後に余分な空白がないか確認 |
| ルート CA まで連結してしまった | ルート証明書も含めて連結 | ルート CA は含めない(連結対象は中間証明書のみ) |
| 古い Apache でフルチェーン NG | Apache 2.4.7 以前のバージョン | SSLCertificateChainFile で別ファイル指定 |
| 改行コードが LF/CRLF 混在 | Windows と Unix での編集 | すべて LF または CRLF に統一 |
🤖 ACME 自動更新ならファイル管理も自動
ACME プロトコルによる自動更新では、中間証明書の連結も自動で実施されます。手動で連結作業を行う必要がないため、設定ミスのリスクがゼロになります。
2029 年からの 47 日ルール時代では、年に 8 回程度の証明書更新が発生します。毎回手動で中間証明書を連結するのは現実的ではありません。ACME 自動更新なら、サーバ証明書と中間証明書がフルチェーン形式で自動配置されます。
当グループ運営の FujiSSL なら、業界稀少の OV ACME 対応で、法人サイトの中間証明書管理も完全自動化できます。
💡 関連するご質問
| ご質問 | 対応 |
|---|---|
| 中間証明書が設定されないとどうなる? | ブラウザで警告が表示されます |
| ルート CA も連結すべき? | 不要です(連結対象は中間 CA 証明書のみ) |
| 連結順を確認したい | 当店の証明書解析ツールで確認可能 |
| インストール代行を頼みたい | SSL インストール代行サービスをご利用ください |
| サーバ別の設定例が見たい | お問い合わせフォームからサーバ種別をお知らせください |