Неизвестный статус OCSP при передаче сертификата, хороший статус при передаче серийного номера

StackOverflow https://stackoverflow.com//questions/25006998

Вопрос

Хорошо, у меня есть многоуровневая система CA, которая выглядит так:

-ROOT_CA

----промежуточный_CA

--------промежуточный_CA2

------------клиентские сертификаты...

У меня есть ответчик OCSP, настроенный на промежуточном_CA2, который запускается следующим образом:

$ openssl ocsp -index intermedia_ca_2_index.txt -CA ca_crt_chain.crt -rsigner intermedia_ca_2.crt     -rkey intermedia_ca_2.key -port xxxx -text

На стороне клиента я делаю запрос ocsp следующим образом:

$ openssl ocsp -issuer ca_crt_chain.crt -CAfile ca_crt_chain.crt -cert client.crt -text -host localhost:xxxx -verify_other... -trust_other

Обратите внимание, что client.crt — это всего лишь сертификат клиента, а не вся цепочка, хотя я пробовал оба способа, и ни один из них не помог.Он всегда возвращается

Response verify OK
client.crt: unknown

Если я изменюсь -cert client.crt к -serial 0xXXXXXXXXX (Очевидно, если передать действительный серийный номер, соответствующий client.crt), тогда все работает:

Response verify OK
0xXXXXXXXXX: good 

Как ни странно, если я проверю запрос в первом примере, он действительно отправляет правильный серийный номер.

Я не могу хоть убей это понять.Есть идеи?

Это было полезно?

Решение

Итак, решение состоит в том, что, по-видимому, openssl ocsp не любит цепочки файлов.Итак, мой вызов сервера теперь выглядит так:

$ openssl ocsp -index intermedia_ca_2_index.txt -CA intermediate_ca_2.crt -rsigner intermedia_ca_2.crt -rkey intermedia_ca_2.key -port xxxx -text

Обратите внимание, что было бы предпочтительнее иметь совершенно отдельную пару ключей для подписи, но без нее.

Клиентское соединение тогда будет выглядеть так:

$ openssl ocsp -issuer intermediate_ca_2.crt -CApath /path/to/trust/store -cert client.crt -text -url http://localhost:xxxx
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top