Letsencrypt certbot leads to ssl protocol error

Ian Hobson hobson42 at gmail.com
Fri Jun 24 09:20:26 UTC 2022


Hi All,

Two of my sites have suffered problems since I updated them to https, 
from http. In fact since the latest
scheduled update by certbot.

The home page of coachmaster.co.uk should be a log in screen.

Brave shows me
This site can’t provide a secure connection
coachmaster.co.uk sent an invalid response.
ERR_SSL_PROTOCOL_ERROR

I think the protocol message it doesn't like is Upgrade-Insecure-Requests: 1

Edge is really informative:
The connection for this site is not secure coachmaster.co.uk sent an 
invalid response.
Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR

Browser: Brave Version 1.40.105  Chromium: 103.0.5060.53 (Official 
Build)  (64-bit)
All others I've tried also fail.

nginx version 1.21.6
openSSL version 1.1.1.n
special compile.

certbot applies configuration of

ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;

ssl_ciphers 
"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";

This last is all one line.

The server block(s) for the site are is (removing a lot of comments to 
save space).
------------- file begins ----------------
#  redirect from http at bottom of file
server {
     server_name coachmaster.co.uk  www.coachmaster.co.uk;
     add_header Strict-Transport-Security "max-age=31536000; 
includeSubDomains";

     add_header X-Frame-Options DENY always;
     add_header X-Content-Type-Options nosniff always;
     add_header X-Xss-Protection "1; mode=block" always;
     ssl_stapling on;
     ssl_stapling_verify on;
     ssl_trusted_certificate 
/etc/letsencrypt/live/coachmaster.co.uk-0001/fullchain.pem;

     limit_req zone=ip burst=12 delay=8;
     location ^~ /Avatars {
        limit_req zone=fp burst=70 nodelay;
     }
     root /var/www/coachmaster.co.uk/htsecure;
     access_log /var/log/nginx/coachmaster.co.uk.access.log;

     # error_log  /var/log/nginx/error.log;  set in nginx.conf

     index index.php;
     location = /Coachmaster.html {
         rewrite ^(.*)  http://thecoachmasternetwork.com/software/;

     }
     location = / {
         rewrite ^ /index.php last;
     }
     location /easyrtc {
         proxy_pass http://localhost:5006;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection 'upgrade';
         proxy_set_header Host $host;
         proxy_cache_bypass $http_upgrade;
     }
     location /socket.io {
         proxy_pass http://localhost:5006;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection 'upgrade';
         proxy_set_header Host $host;
         proxy_cache_bypass $http_upgrade;
     }
     # serve php files via fastcgi if the file exists
     location ~ \.php$ {
         try_files $uri =404;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
         fastcgi_param  SCRIPT_FILENAME 
$document_root$fastcgi_script_name;

         fastcgi_param  CENTRAL_ROOT       $document_root;
         fastcgi_param  RESELLER_ROOT      $document_root;
         fastcgi_param  ENVIRONMENT        production;
         fastcgi_param  HTTPS ON;
         include /etc/nginx/fastcgi.conf;
         fastcgi_pass 127.0.0.1:9000;
     }
     # serve static files
     try_files $uri $uri/ /index.php;
     expires 30m;
     location /publish {
         nchan_publisher;
         nchan_channel_id $arg_id;
         nchan_channel_id $arg_id;
         nchan_message_buffer_length 10;
         nchan_message_timeout 90s;
     }
     location /activity {
         nchan_subscriber;
         nchan_channel_id $arg_id;
     }

     listen 443 ssl; # managed by Certbot
     ssl_certificate 
/etc/letsencrypt/live/coachmaster.co.uk-0001/fullchain.pem; # managed by 
Certbot

     ssl_certificate_key 
/etc/letsencrypt/live/coachmaster.co.uk-0001/privkey.pem; # managed by 
Certbot

     include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

     ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
     if ($host = www.coachmaster.co.uk) {
         return 301 https://$host$request_uri;
     } # managed by Certbot

     if ($host = coachmaster.co.uk) {
         return 301 https://$host$request_uri;
     } # managed by Certbot

     server_name coachmaster.co.uk  www.coachmaster.co.uk;
     listen 80;
     return 404; # managed by Certbot
}
------------ end of file -----------
I have inserted a blank line after long lines that wrap.

According to the UptimeRobot the site is up.

The service at 
https://www.ssllabs.com/ssltest/analyze.html?d=coachmaster.co.uk give no 
obvious errors,
except that it shows the TLS 1.2 protocol NOT enabled.

I'm way out of my depth now. Can anyone suggest something that is not 
weakening the security.

Regards

Ian

-- 
Ian Hobson
Tel (+66) 626 544 695



More information about the nginx mailing list