Как просмотреть ответ OCSP TLS CertificateStatus?

В настоящее время я пытаюсь выяснить, как сервер обрабатывает сшивание OCSP, и хочу посмотреть, как часто он подписывает свой сертификат. Согласно RFC 6066 (если я правильно понял), сертификат и отметка времени должны быть подписаны и возвращены под status_request, если присутствует сообщение CertificateStatus. Как просмотреть сертификат с отметкой времени и соответствующую подпись? До сих пор я использовал Wireshark, который, насколько я вижу, не показывает такого ответа. Я использовал завиток, который, я думаю, проверяет сертификат, но на самом деле я не вижу сертификат с отметкой времени (* SSL certificate status: good (0) ).

В качестве дополнительного вопроса, насколько последним должен быть сертификат с отметкой времени, чтобы он был действительным?

заранее спасибо


person user13392352    schedule 16.12.2020    source источник


Ответы (1)


Вы можете использовать команду openssl s_client с флагом -status, чтобы отправить запрос статуса сертификата на сервер. Если сервер поддерживает сшивание OCSP, вы увидите подробности ответа OCSP в данных, включая подпись над ним.

Например, если мы попробуем это сделать со stackoverflow.com:

crow@mac:api$ openssl s_client -connect stackoverflow.com:443 -status
CONNECTED(00000006)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = *.stackexchange.com
verify return:1
OCSP response: 
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
    Produced At: Dec 10 14:03:00 2020 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: 7EE66AE7729AB3FCF8A220646C16A12D6071085D
      Issuer Key Hash: A84A6A63047DDDBAE6D139B7A64565EFF3A8ECA1
      Serial Number: 03F73CD163AB052D41D18294D569DB388C2E
    Cert Status: good
    This Update: Dec 10 14:00:00 2020 GMT
    Next Update: Dec 17 14:00:00 2020 GMT

    Signature Algorithm: sha256WithRSAEncryption
         9a:d6:32:9d:61:74:9a:d7:e0:46:a4:f8:e6:52:29:da:ce:b0:
         ...

Что касается того, насколько последним должен быть ответ, вы увидите, что есть время этого обновления, которое является самым последним временем, когда отвечающая сторона (т. е. сторона, подписывающая ответ OCSP) знала, что статус правильный, и следующий Время обновления — время, когда будет доступна новая информация. Пока текущее время находится между этими двумя временами, вы можете считать ответ действительным. Конечно, всегда возможно, что более новый (и другой) ответ был создан до этого времени следующего обновления, и единственный способ узнать наверняка — это выполнить живую проверку на сервере OCSP, но общее намерение состоит в том, чтобы окно времени в ответе должно быть достаточно коротким, чтобы в большинстве случаев вам не нужно было об этом беспокоиться.

person Crowman    schedule 16.12.2020
comment
Интересно, действительно ли s_client -status проверяет сшитый ответ OCSP? - person Franklin Yu; 03.04.2021