ocsp response not current

2020/08/26

TL;DR: para ajustar la hora en OpenBSD cuando esta se desfasa tanto que falla la validación de fecha (y hora) de los certificados TLS hacer:

$ doas rdate pool.ntp.org

Al tratar de instalar un paquete en OpenBSD obtuve la siguiente salida:

openbsd67$ pkg_info -Q vim
https://cdn.openbsd.org/pub/OpenBSD/6.7/packages-stable/amd64/: TLS handshake failure: ocsp verify failed: ocsp response not current
https://cdn.openbsd.org/pub/OpenBSD/6.7/packages/amd64/: TLS handshake failure: ocsp verify failed: ocsp response not current
https://cdn.openbsd.org/pub/OpenBSD/6.7/packages/amd64/: empty

Probando con el comando ftp (en OpenBSD los comandos wget o curl no estan disponibles por defecto) para ver si es un problema del servidor se obtiene el mismo error, a no ser que se deshabilite la validación del certificado, o más especificamente la validación de fechas:

openbsd67$ ftp -o- 'https://cdn.openbsd.org/pub/OpenBSD/'
Trying 151.101.218.217...
TLS handshake failure: ocsp verify failed: ocsp response not current
openbsd67$ ftp -Sdont -o- 'https://cdn.openbsd.org/pub/OpenBSD/' | head -1
Trying 151.101.218.217...
Requesting https://cdn.openbsd.org/pub/OpenBSD/
2396 bytes received in 0.00 seconds (1.05 MB/s)
<!DOCTYPE html>
openbsd67$ ftp -Snoverifytime -o- 'https://cdn.openbsd.org/pub/OpenBSD/' | head -1
Trying 151.101.218.217...
Requesting https://cdn.openbsd.org/pub/OpenBSD/
2396 bytes received in 0.00 seconds (3.25 MB/s)
<!DOCTYPE html>

Revisando el log en /var/log/daemon se encuentran mensajes del tipo:

Aug 10 06:34:14 openbsd67 ntpd[61643]: reply from 190.64.134.53: constraint check failed

lo que indica problemas con la sincronización de la hora.

Revisando la hora actual del sistema se encuentra:

openbsd67$ date
Mon Aug 10 07:13:43 -03 2020

Buscando en internet respecto al problema se encuentra que este es debido a que la hora del sistema está muy desajustada, por lo que esta no puede ajustarse automáticamente.

Si bien la forma que me parece más segura es acercar primero la hora de forma manual usando date y luego dejar que ntpd la ajuste automáticamente, en la práctica encontré que al hacer esto en el log (/var/log/daemon) siempre queda la hora desfasada varios segundos (constraint reply from 9.9.9.9: offset 49.217986).

Por otro lado, utilizando rdate pool.ntp.org, si bien se indica que es una opción insegura -ya que <pool.ntp.org> no utiliza certificados-, en la práctica se obtiene un offset del reloj de menos de un segundo inmediatamente.

¿Como se llegó a esta situación?. El problema ocurrió en una máquina virtual de OpenBSD la cual se suspendió en lugar de apagarse, por lo que creo que por allí se dió el error.

Para más detalles: