Как просмотреть статус сертификата ответа OCSP TLS?

#ssl #tls1.2 #ocsp

#ssl #tls1.2 #ocsp

Вопрос:

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

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

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

Ответ №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, но общее намерение состоит в том, чтобы интервал времени в ответе был достаточно короткимчто для большинства целей вам не нужно беспокоиться об этом.

Комментарии:

1. Интересно, s_client -status действительно ли проверяется сшитый ответ OCSP?