
## この記事でわかること

- OCSP（Online Certificate Status Protocol）とは何か
- OCSP Stapling が表示速度を改善する理由
- Nginx / Apache での設定手順
- Web 担当者がチェックすべきポイント

## OCSP とは

![OCSP の動作と Stapling の差](/blog/ocsp-stapling-toha/ocsp-flow.svg)

ブラウザが SSL 証明書を検証する際、「この証明書は失効していないか？」を認証局（CA）に問い合わせる仕組みが **OCSP**（RFC 6960）です。問い合わせ先は証明書内の `OCSP URI` フィールドに書かれた CA のサーバ。

問題:
- ブラウザ → CA への OCSP 問い合わせは **TLS ハンドシェイク中の追加往復**になる
- 結果として **初回アクセスで 100〜500 ms の遅延**
- CA 側のサーバが落ちると証明書検証が失敗、サイトが見られなくなる

## OCSP Stapling の仕組み

OCSP Stapling は **Web サーバ側があらかじめ OCSP レスポンスを CA から取得しておき、TLS ハンドシェイクに添付**する仕組み（RFC 6066 §8）。

- ブラウザは CA に問い合わせる必要がない → 往復がなくなる
- 100〜500 ms の高速化
- CA のダウンタイム時もサイトが動く（Web サーバが直近の OCSP レスポンスをキャッシュ）

## Nginx での設定

```nginx
server {
    listen 443 ssl http2;
    server_name example.co.jp;
    ssl_certificate /etc/ssl/example.co.jp.crt;
    ssl_certificate_key /etc/ssl/example.co.jp.key;

    # OCSP Stapling 設定
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/ssl/chain.crt;  # 中間証明書
    resolver 1.1.1.1 8.8.8.8 valid=300s;
    resolver_timeout 5s;
}
```

設定後 reload:
```bash
sudo nginx -t && sudo nginx -s reload
```

確認コマンド:
```bash
echo | openssl s_client -connect example.co.jp:443 -status -servername example.co.jp 2>&1 | grep -A 17 'OCSP response'
```

`OCSP Response Status: successful (0x0)` が返れば成功。

## Apache での設定

```apache
<VirtualHost *:443>
    ServerName example.co.jp
    SSLEngine on
    SSLCertificateFile /etc/ssl/example.co.jp.crt
    SSLCertificateKeyFile /etc/ssl/example.co.jp.key

    # OCSP Stapling 設定
    SSLUseStapling on
    SSLStaplingCache shmcb:/var/run/ocsp(128000)
</VirtualHost>
```

`SSLStaplingCache` は VirtualHost の外（global config）に書く必要があるバージョンもあるので、Apache 公式ドキュメント参照。

## クラウドサーバ / マネージド環境での状況

![OCSP Stapling 対応状況](/blog/ocsp-stapling-toha/managed-status.svg)

| 環境 | OCSP Stapling 対応 |
|---|---|
| Cloudflare（CDN 経由） | ✅ デフォルト有効 |
| AWS CloudFront | ✅ デフォルト有効 |
| Xserver / さくら / Lolipop | サーバ側で有効化済み（個別確認推奨） |
| Heroku / Vercel / Netlify | ✅ デフォルト有効 |
| 自前 Nginx / Apache | ❌ 設定要 |

つまり、**自前運用の場合のみ追加設定が必要**。マネージド環境では既定で有効。

## OCSP Must-Staple とは

`X.509 v3 Certificate Extension` で証明書発行時に **「Stapling 必須」フラグ**を付ける拡張があります（RFC 7633）。

このフラグ付き証明書は OCSP レスポンスがないと検証失敗するため、**Stapling が確実に有効**な状態でないと運用できません。中小企業の標準ではあまり使わず、金融機関等の特殊用途に限定。

## まずは現状を把握しましょう

[SSL 単発チェック](/ssl/check) で SSL 証明書の状態を 30 秒で確認できます。期限・HSTS・HTTP/2-3 対応まで一括レポート。

OCSP / 中間証明書 / HTTP/3 対応まで含めた点検と是正対応は [SSL 棚卸し＋自動更新セットアップ](/contact)（5 万円〜）でご相談ください。

関連記事: [中間証明書省略の罠と対処法](/blog/chukan-shomeisho-no-wana) / [SSL Labs A+ 取得ガイド](/blog/ssl-labs-a-plus-shutoku) / [HSTS の設定方法](/blog/hsts-settei-houhou)

メール認証や Web セキュリティヘッダの単発チェックも合わせて [無料ツール一覧](/tools) にまとめています。
