ssl_stapling without ssl_trusted_certificate
Maxim Dounin
mdounin на mdounin.ru
Чт Апр 11 19:56:20 UTC 2019
Hello!
On Thu, Apr 11, 2019 at 03:55:31AM +0300, sergio via nginx-ru wrote:
> On 01/04/2019 19:22, Maxim Dounin wrote:
>
> > Давайте пойдём простым путём.
>
> Не похож он на простой.
Он простой в том смысле, что результат не зависит от ваших
оценочных суждений, а проверяем.
[...]
> > "nginx -T"
>
> Тут очень много всего, куча серверов, 909 строк, и не всё я могу
> показать. Давайте так:
>
> # nginx -T | grep "resol\|stapl"
> nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
> nginx: configuration file /etc/nginx/nginx.conf test is successful
> ssl_stapling on;
> ssl_stapling_verify on;
> #resolver localhost;
Нет, так не работает. Если не хотите чего-то показывать -
воспроизведите проблему в песочнице и давайте полный конфиг из
неё.
Впрочем, я уже вижу проблему и без этого. Как и предполагалось
ранее - логов нужного уровня нет:
> > и debug log с обращением к OCSP-серверу
>
> У меня дебиан, nginx-debug нету. Я просто взял и заменил warn на debug
> в error_log на уровне http и на уровне server'а
Директиву error_log следует указывать на глобальном уровне.
Именно туда попадают сообщения, которые генерируются
инфраструктурным кодом, не привязанным к конкретному соединению
и/или модулю.
Поскольку на глобальном уровне error_log у вас, судя по всему, не
задан вообще, то используется error log, заданный при сборке -
/var/log/nginx/error.log - с уровнем логгирования error. Но этого
недостаточно, чтобы увидеть сообщения уровня warn, а тем более -
debug.
В результат в логе видно, что был вызыван certificate status
callback:
> вижу кучу невнятных записей в error.log со словами [debug], ни слова про
> ocsp:
>
> [debug] 30320#30320: *1 SSL certificate status callback
> [debug] 30320#30320: *1 SSL_do_handshake: -1
> [debug] 30320#30320: *1 SSL_get_error: 2
> [debug] 30320#30320: *1 epoll add event: fd:55 op:1 ev:80002001
> [debug] 30320#30320: *1 event timer add: 55: 60000:4031539074
но не видно всего того, что начинает происходить после этого
callback'а уже без привязки к конкретному соединению. Должно быть
как-то так:
...
2019/04/11 22:37:56 [debug] 52632#100124: *1 SSL certificate status callback
2019/04/11 22:37:56 [debug] 52632#100124: posix_memalign: 29056000:2048 @16
2019/04/11 22:37:56 [debug] 52632#100124: ssl ocsp request
2019/04/11 22:37:56 [debug] 52632#100124: ssl ocsp request length 96, escape 3
2019/04/11 22:37:56 [warn] 52632#100124: no resolver defined to resolve ocsp.cacert.org while requesting certificate status, responder: ocsp.cacert.org, certificate: "/path/to/crt"
2019/04/11 22:37:56 [debug] 52632#100124: ssl ocsp connect
2019/04/11 22:37:56 [debug] 52632#100124: stream socket 9
2019/04/11 22:37:56 [debug] 52632#100124: connect to 213.154.225.237:80, fd:9 #2
2019/04/11 22:37:56 [debug] 52632#100124: kevent set event: 9: ft:-1 fl:0025
2019/04/11 22:37:56 [debug] 52632#100124: kevent set event: 9: ft:-2 fl:0025
2019/04/11 22:37:56 [debug] 52632#100124: ssl ocsp connect peer done
2019/04/11 22:37:56 [debug] 52632#100124: event timer add: 9: 60000:351011347
2019/04/11 22:37:56 [debug] 52632#100124: event timer add: 9: 60000:351011347
2019/04/11 22:37:56 [debug] 52632#100124: *1 SSL_do_handshake: 1
2019/04/11 22:37:56 [debug] 52632#100124: *1 SSL: TLSv1.2, cipher: "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD"
...
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru