Opened 4 years ago
Closed 3 years ago
#2035 closed defect (fixed)
Can't get old SSL cert to work - ca md too weak
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-core | Version: | 1.19.x |
Keywords: | ssl | Cc: | jez9999@… |
uname -a: | Linux vm-debian-main 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.14.2
built with OpenSSL 1.1.1c 28 May 2019 (running with OpenSSL 1.1.1d 10 Sep 2019) TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-tBUzFN/nginx-1.14.2=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-mail=dynamic --with-mail_ssl_module --add-dynamic-module=/build/nginx-tBUzFN/nginx-1.14.2/debian/modules/http-auth-pam --add-dynamic-module=/build/nginx-tBUzFN/nginx-1.14.2/debian/modules/http-dav-ext --add-dynamic-module=/build/nginx-tBUzFN/nginx-1.14.2/debian/modules/http-echo --add-dynamic-module=/build/nginx-tBUzFN/nginx-1.14.2/debian/modules/http-upstream-fair --add-dynamic-module=/build/nginx-tBUzFN/nginx-1.14.2/debian/modules/http-subs-filter |
Description
I'm trying to use an old SSL cert for one of my sites, and nginx fails to start with the error:
nginx: [emerg] SSL_CTX_add0_chain_cert("/etc/ssl/certs/game-point.net_crt_withcabundle.pem") failed (SSL: error:1415A18E:SSL routines:ssl_cert_add0_chain_cert:ca md too weak) nginx: configuration file /etc/nginx/nginx.conf test failed
I do NOT wish to generate a newer certificate - I'm aware of the security issues with using old certs. I want to get this one to work despite it's being old and insecure. Don't ask me why. :-)
However, I can't get past this error. I tried changing ssl_ciphers in my /snippets/ssl.conf file:
ssl_ciphers ALL:@SECLEVEL=0;
But I still get the same error when Nginx starts. Is there some built-in setting that prevents security level getting set to 0 or something?
Change History (3)
comment:1 by , 3 years ago
comment:3 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fix committed, thanks for reporting this.
Note:
See TracTickets
for help on using tickets.
SSL ciphers are configured by nginx after loading the certificates, so changing security level via the cipher string does not affect certificate loading and does not prevent the error in question.
To resolve this, appropriate OpenSSL config can be used to set the desired security level before the certificates are loaded by nginx, for example:
(If needed, instead of changing the system default OpenSSL configuration file it is possible to provide nginx-specific one via the
OPENSSL_CONF
environment variable.)It is also possible to reorder nginx code to set ciphers before loading certificates, so the
@SECLEVEL=...
hack would apply to loading server certificates when used inssl_ciphers
. Not sure it worth the effort though, as this is probably the only question about using weak server certificates I've seen. On the other hand, the change is rather trivial and can be also beneficial with upcoming security level changes in OpenSSL 3.0.Patch below, testing is appreciated: