中間証明書とクロスルート証明書を結合したファイル(CAバンドル,中間証明書チェーン)について
なぜ「クロスルート証明書」が必要なのか
新しいルート(R6)の壁: 2025年〜2026年にかけて普及している最新の「R6」ルート証明書は、数年前の古いスマホやPCには「まだ登録されていない」可能性があり、クロスルート証明書が必要な場合がある。
古い端末の対応: 古い端末でも利用できる「R3(以前の規格)」などの古いルート証明書を仲介役にすることで、「この新しいR6は、古い規格のR3からも信頼されている物です」と証明するのがクロスルートの役割です。
対象: 主に古いAndroid端末や、長期間アップデートしていないブラウザでの閲覧エラー(「保護されていない通信」)を防ぐために必須となります。
クロスルート証明書を含めると古い端末の以下のバージョンが対象になるかと思います
- Android
AndroidはOS自体にルート証明書を持っているため、古いバージョンは新しい「R6」を知りません。
対象: Android 7.1.1 以前 - iOS (iPhone / iPad)
Apple製品は比較的アップデートが早いですが、以下の古いバージョンが対象になります。
対象: iOS 10 以前 - Windows (PC)
Windowsは通常アップデートでルート証明書が更新されますが、サポートが終了しているOSは注意が必要です。
対象:Windows 7 以前(特にサービスパックが当たっていないものや、オフライン環境)
証明書の作り方(中間+クロスルートの結合)
クロスルート証明書を含める場合は、簡単で中間証明書とクロスルート証明書を結合して、1つのCAバンドルファイルを作成すればいいです。以下が中間証明書とクロスルート証明書とします
- AlphaSSL_CA_2025.crt (中間証明書)
- RootR6.crt (クロスルート証明書)
# 中間証明書を「ca-bundle.crt」として保存 $ cat AlphaSSL_CA_2025.crt > ca-bundle.crt # クロスルートを「ca-bundle.crt」に追記する $ cat RootR6.crt >> ca-bundle.crt
上記で、中間証明書とクロスルート証明書を結合したファイルができています。具体的には以下のような並びになっています
-----BEGIN CERTIFICATE-----
【中間証明書の文字列】
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
【クロスルート証明書の文字列】
-----END CERTIFICATE-----
これをApacheとかNginxに設定すれば、中間証明書とクロスルート証明書を結合した証明書となります

