証明書Full chain、順番、CNなど中身の確認方法
Azure Application Gateway(AppGW)のリスナー設定やバックエンドとの HTTPS 接続で問題が発生した際、原因の多くは証明書の構成不備(中間証明書の欠落など)にあります。本ドキュメントでは、証明書の詳細確認と構成修正の手順をまとめます。
1. 証明書の詳細を確認する(手元にファイルがある場合)
AppGW にアップロードする前の .pfx ファイルに、必要な証明書チェーンがすべて含まれているか確認します。
Windows の場合(標準機能)
certutil -dump "path\to\your_certificate.pfx"
Linux / OpenSSL 環境の場合
openssl pkcs12 -info -in <ファイルのパス/xxxxx.pfx> -nokeys
Tip:
-nokeysオプションを付けることで、秘密鍵の情報を表示せず、証明書の内容のみを簡潔に確認できます。
2. 稼働中のサービスから証明書を確認する(オンライン確認)
デプロイ済みの AppGW やバックエンドサーバーに対して、外部から証明書がどのように見えているかを確認します。
[リスナー側] Application Gateway への接続確認
ブラウザでアクセスできる場合でも、中間証明書が正しく送出されているかを s_client で確認するのが確実です。
openssl s_client -connect <AppGW_Public_IP>:443 -servername <FQDN> -showcerts
[バックエンド側] AppGW からバックエンドへの接続確認
AppGW がバックエンドと HTTPS 通信を行う際、バックエンド側が適切な証明書を提示している必要があります。
openssl s_client -connect <Backend_IP>:443 -servername <FQDN> -showcerts
チェックポイント:
- Verification error: が表示されていないか(自署名証明書や有効期限切れ、チェーンの不備)。
- Certificate chain: にサーバー証明書だけでなく、中間証明書(Intermediate)が含まれているか。
- CN (Common Name) / SAN (Subject Alternative Name): が AppGW のバックエンド設定の「ホスト名」と一致しているか。
3. 証明書チェーンの修復と最適化(PFX の再構成)
ブラウザ(Chrome/Edge)は欠落している中間証明書を補完して表示する機能(AIA)がありますが、AppGW や特定のクライアントでは**フルチェーン(サーバー証明書 + 中間証明書)**が正しく並んでいる必要があります。
手順:PEM を経由した並び替え
-
PFX から PEM への変換(秘密鍵と証明書を抽出)
openssl pkcs12 -in original.pfx -nodes -out temp.pem -
テキストエディタで PEM を編集
ファイルの順番を以下の「正しい順序」に整えます。不要な属性情報(Bag Attributes)は削除しても問題ありません。-----BEGIN PRIVATE KEY----- (サーバーの秘密鍵) -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- (サーバー証明書:Entity Certificate) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (中間証明書 1:Intermediate CA 1) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (中間証明書 2:Intermediate CA 2 ※必要な場合) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (ルート証明書:Root CA ※通常は含めなくても良いが、AppGWのバックエンド信頼用には必要な場合あり) -----END CERTIFICATE----- -
PEM から PFX への再変換
openssl pkcs12 -export -in temp.pem -out fixed_certificate.pfx
4. 補足事項
Windows 環境への OpenSSL 導入
Windows でも Git Bash(Git for Windows に同梱)を利用すれば、標準で openssl コマンドが利用可能です。別途インストールする場合は、パッケージマネージャー(WinGet / Chocolatey)を利用すると管理が容易です。
-
WinGet:
winget install OpenSSL.Light
AppGW 固有の注意点
- バックエンド設定 (v2 SKU): バックエンドに公的な証明書(既知の CA)を使用している場合、AppGW v2 ではルート証明書のアップロードは不要になりました。ただし、中間証明書がバックエンドサーバーから正しく送出されていることが必須条件です。
- パスワード: AppGW に PFX をアップロードする際、空のパスワードは受け付けられない場合があります。再変換時には必ずパスワードを設定してください。