TenForward

あまり詳しくない分野のメモを書きます。技術的なネタは http://d.hatena.ne.jp/defiant/ に書くことが多いです。

StartSSLの発行直後の証明書とOCSP

StartSSL でサーバ証明書を発行して Web サーバに設定しました。確認のために Firefox でアクセスすると、

“sec_error_ocsp_unknown_cert” というエラーです。

Firefox はデフォルトでは OCSP レスポンダに問い合わせて証明書の有効性を確認するようです。

ぐぐってみると似たような話題があります。

StartSSL の OCSP レスポンダに新たに発行した証明書の情報が反映されるのに時間がかかるということでしょうかね。試してみました。フォーラムでは 6 時間くらいしたら反映された、という話もあるのでしばらくかかるのかも。

準備

StartSSL は中間証明書を使いますのでその準備を。StartSSL の CA 証明書と中間証明書を取得し、openssl の c_hash ユーティリティを使ってハッシュ値のリンクを作っておきます。

1
2
3
4
5
6
$ ls -l start.com/
合計 8,192
lrwxrwxrwx 1 karma users    24  3月 19日  17:35 38d751eb.0 -> sub.class1.server.ca.pem
lrwxrwxrwx 1 karma users     6  3月 19日  17:35 ae8153b9.0 -> ca.pem
-rw-r--r-- 1 karma users 2,760  5月  7日 2008年 ca.pem
-rw-r--r-- 1 karma users 2,090  2月  5日  06:10 sub.class1.server.ca.pem

正常な場合

まずは StartSSL で発行した証明書で Firefox からもアクセスできている証明書で試してみましょう。

1
2
3
4
5
6
7
8
9
10
11
$ openssl ocsp \
> -issuer start.com/sub.class1.server.ca.pem \
> -cert guinan.ten-forward.ws.crt \
> -url http://ocsp.startssl.com/sub/class1/server/ca \
> -header Host ocsp.startssl.com \
> -CApath start.com/ 
WARNING: no nonce in response
Response verify OK
guinan.ten-forward.ws.crt: good
  This Update: Mar 19 06:01:44 2015 GMT
  Next Update: Mar 21 06:01:44 2015 GMT
  • issuer: Issuerの証明書
  • cert: チェック対象の証明書
  • url: OCSP レスポンダの URL
  • header: OCSP レスポンダがバーチャルホストの場合に Host ヘッダを送る必要があるのでそれを記述
  • CApath: 事前に準備したディレクトリ

“good” と出ていますね

発行直後のもの

発行直後で Firefox でアクセスするとエラーになる証明書で上記と同様にやってみます。

1
2
3
4
5
6
7
8
9
10
11
$ openssl ocsp \
> -issuer start.com/sub.class1.server.ca.pem \
> -cert kilkenny.harp.gr.jp.crt \
> -url http://ocsp.startssl.com/sub/class1/server/ca \
> -header Host ocsp.startssl.com \
> -CApath start.com/ 
WARNING: no nonce in response
Response verify OK
kilkenny.harp.gr.jp.crt: unknown
  This Update: Mar 19 07:31:50 2015 GMT
  Next Update: Mar 21 07:31:50 2015 GMT

確かに “unknown” と返ってきています。これで”sec_error_ocsp_unknown_cert”となるのもわかります。

少し時間が経った後

上記と同じようにやってみると、

1
2
3
4
5
6
7
8
9
10
11
$ openssl ocsp \
> -issuer start.com/sub.class1.server.ca.pem \
> -cert kilkenny.harp.gr.jp.crt \
> -url http://ocsp.startssl.com/sub/class1/server/ca \
> -header Host ocsp.startssl.com \
> -CApath start.com/
WARNING: no nonce in response
Response verify OK
kilkenny.harp.gr.jp.crt: good
  This Update: Mar 20 06:37:15 2015 GMT
  Next Update: Mar 22 06:37:15 2015 GMT

無事 good になりました

まとめ

StartSSL でサーバ証明書を発行する場合は少し余裕を持って、発行されてから少し経った後に証明書のインストール・入れ替えをすると良いと思います。

おまけ

上記のコマンドで -resp_text とオプションを付けると、レスポンスの出力ができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ openssl ocsp (..略..) -resp_text
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = IL, O = StartCom Ltd. (Start Commercial Limited), CN = StartCom Class 1 Server OCSP Signer
    Produced At: Mar 20 06:37:15 2015 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: 6568874F40750F016A3475625E1F5C93E5A26D58
      Issuer Key Hash: EB4234D098B0AB9FF41B6B08F7CC642EEF0E2C45
      Serial Number: 0564461CA61DBC
    Cert Status: good
    This Update: Mar 20 06:37:15 2015 GMT
    Next Update: Mar 22 06:37:15 2015 GMT
  : (略)