OCSP stapling

仕組み

こちらを参照されたし。

設定内容

この仕組みはサーバ証明書が予定の有効期限より早くに失効した場合などにそれを検知する仕組みらしい。

Nginxでの設定方法をここに記録する。

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate 中間ファイルパス;
resolver DNS_ip...;
resolver_timeout 5s;

OCSP設定の確認方法

OCSPが設定できているかどうかは、以下のコマンドで確認可能です。

openssl s_client -connect ドメイン名:443 -status | grep OCSP

でも、エラーが発生した…

以下のようなエラーが発生した。何故なんだろう…。
1つ目は上記コマンド実行時の出力内容で、2つ目はNginxのログに出力された内容です。

ちなみに”dig”コマンドでは名前解決してくれるんだけど、”ping”や”tracepath”でエラーになってしまう。

OCSP response: no response sent
2024/01/01 00:00:00 [error] 4371#4371: dv.g4.ocsp.pubcert.jprs.jp could not be resolved (5: Operation refused) while requesting certificate status, responder: dv.g4.ocsp.pubcert.jprs.jp, certificate: "証明書ファイルパス"

解決した…⁉(解決してない)

nginx設定のresolverでDNSサーバをIPアドレスで指定した。
以下のコマンドでOCSPの確認をするとエラー”OCSP response: no response sent”OCSP response: no response sent”にはならなかった!!(ただし先ほどのコマンドだと相変わらずエラーに…。)

サーバ証明書には中間証明書と結合したサーバ証明書のファイルパスを入力する。
“OCSPサーバ(?)”には、名前解決エラーが出ていた”dv.g4.ocsp.pubcert.jprs.jp”を入力する。

sudo -u nginx openssl ocsp -no_nonce -issuer 中間証明書 -cert サーバ証明書 -url OCSPサーバ(?) -text
OCSP Response Data:
    OCSP Response Status: successful (0x0)

今度こそ、解決した!!はず…

そもそも何故、名前解決エラーが発生したのか?
これは”resolver”に指定したDNSが無効だたから、だった。
ここにはIPで指定しなければならないがドメイン名を指定してしまっていた!!
結果、当然エラーになる。

だが他にもエラーが発生してしまった。
以下の通り”issuer certificate”が読み込めない旨のエラーが発生している。

解決した方法は”ssl_trusted_certificate”で指定していたファイルの内容が中間証明書のみとなっていたため、中間証明書とルート証明書を”cat”コマンドで連結したファイルを指定し直した。

結果、最初の”OCSP設定の確認方法”のコマンドで見事エラーなく成功した!

2024/01/01 00:00:00 [error] 3136#3136: OCSP_basic_verify() failed (SSL: error:13800065:OCSP routines::certificate verify error:Verify error: unable to get issuer certificate) while requesting certificate status, responder: dv.g4.ocsp.pubcert.jprs.jp, peer: IPアドレス, certificate: "サーバ証明書"
$ openssl s_client -connect e-lab.tokyo:443 -status | grep OCSP
depth=2 C = JP, O = "SECOM Trust Systems CO.,LTD.", OU = Security Communication RootCA2
verify return:1
depth=1 C = JP, O = "Japan Registry Services Co., Ltd.", CN = JPRS Domain Validation Authority - G4
verify return:1
depth=0 CN = e-lab.tokyo
verify return:1
OCSP response:
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
        Subject: C=JP, O=Japan Registry Services Co., Ltd., CN=JPRS Domain Validation Authority - G4 OCSP Responder
            OCSP No Check:
                OCSP Signing

コメントを残す