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