Я настроил nginx с сертификатами SSL и letsencrypt. Однако я не могу заставить работать OCSP stappling.
Из того, что я нашел в Интернете, он должен работать со следующей конфигурацией, но, к сожалению, это не так. Мой виртуальный хост nginx выглядит так:
server {
...
# SSL Certificates
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
# Allow Nginx to send OCSP results during the connection process
ssl_stapling on;
ssl_stapling_verify on;
resolver $DNS-IP-1 $DNS-IP-2 valid=300s;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
...
}
Когда я сканирую свой домен с помощью https://www.ssllabs.com , он сообщает:
OCSP stapling No
Что мне не хватает в моей конфигурации?
Я не вижу ничего плохого в вашей настройке, но, возможно, удаление избыточной директивы распознавателя
даст другой результат.
Я также сталкивался с подобным ситуации, и я даже протестировал сшивание OCSP с помощью openssl
на основе этой статьи :
echo QUIT | openssl s_client -connect www.yourdomain.com:443 -servername www.yourdomain.com -status 2> /dev/null | grep -A 17 'OCSP response:' | grep -B 17 'Next Update'
Отсутствие вывода означает, что сшивание OCSP еще не работает.
Из того, что я заметил, если я перезапускаю / перезагружаю Nginx, а затем сразу же тестирую с помощью SSL Labs, он не работает. Затем я бы несколько раз протестировал указанную выше команду, пока она не сработает, а затем повторно протестирую в SSL Labs. Я рекомендую вам попробовать, и если он не удастся с первого раза, подождите несколько минут и попробуйте еще раз. У меня работает.
nginx получает ответ OCSP после первого запроса с использованием соответствующего сертификата.
Это поведение , вероятно, будет изменено для полной поддержки OCSP Must Staple
Пока это не произойдет, надежным тестом для сшивания будет несколько подключений, позволяющих nginx некоторое время получать подписанный ответ между ними.
for i in 3 0; do openssl s_client -connect example.com:443 -servername example.com -status </dev/null 2>&1 | grep -A 13 OCSP; sleep $i; done
Ответчики OCSP делают провалиться - много. Если они работают медленно, nginx откажется от работы после тайм-аута (ненастраиваемый, afaik 60 секунд) и отметит это в журнале ошибок. Если вы хотите узнать прямо сейчас, попробуйте:
openssl x509 -noout -text -in example.crt | grep "OCSP - URI" | cut -d: -f2,3 | grep -io "^http://[-.a-z0-9]*$" | xargs curl -D-