Несколько месяцев назад я начал получать жалобы от десятков пользователей на получение ошибок при подключении к моему сайту. Когда я смотрю в error.log nginx, я вижу ежедневные ошибки SSL:
Я понятия не имею, что может вызвать эту проблему, поскольку 99% пользователей проходят, и я не могу воспроизвести ее сам. Один пользователь сказал, что переход на VPN решил для него проблему. Другие сообщения в stackoverflow предполагают, что это происходит со вредоносными запросами с одного и того же IP-адреса, но здесь это не так.
Кто-нибудь знает, как это исправить?
(Я не вносил никаких изменений в этот сервер/конфигурацию в течение нескольких месяцев.)
Веб-сервер работает на Ubuntu 20.10.
Ошибка Nginx.log
16.04.2022, 04:40:19 [крит] 809329#809329: *13542487 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 138.197.194.139, сервер : 0.0.0.0:443
16.04.2022, 04:40:32 [крит] 809329#809329: *13542919 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 38.132.118.76, сервер : 0.0.0.0:443
16.04.2022, 04:58:54 [крит] 809329#809329: *13564742 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) во время установления связи SSL, клиент: 165.227.227.95, сервер : 0.0.0.0:443
16.04.2022, 05:10:29 [крит] 809329#809329: *13578753 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 138.197.194.139, сервер : 0.0.0.0:443
16.04.2022, 05:59:32 [крит] 809329#809329: *13638601 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 178.73.215.171, сервер : 0.0.0.0:443
16.04.2022, 07:16:27 [крит] 809330#809330: *13730741 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 65.49.20.67, сервер : 0.0.0.0:443
16.04.2022, 07:18:19 [крит] 809330#809330: *13733448 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 192.241.223.231, сервер : 0.0.0.0:443
16.04.2022, 09:51:15 [крит] 809330#809330: *13937194 SSL_do_handshake() не удалось (SSL: ошибка: 141CF06C: подпрограммы SSL: tls_parse_ctos_key_share: неверный общий ключ) при квитировании SSL, клиент: 165.227.227.95, сервер : 0.0.0.0:443
Конфигурация Nginx
сервер {
имя_сервера api.rekonise.com www.api.rekonise.com;
место расположения / {
прокси_пароль http://localhost:3000/;
прокси_http_версия 1.1;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение «обновление»;
proxy_set_header Хост $host;
proxy_cache_bypass $http_upgrade;
}
слушать [::]:443 ssl; # под управлением Certbot
слушать 443 ssl; # под управлением Certbot
ssl_certificate /etc/letsencrypt/live/api.rekonise.com/fullchain.pem; # под управлением Certbot
ssl_certificate_key /etc/letsencrypt/live/api.rekonise.com/privkey.pem; # под управлением Certbot
включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}
сервер {
если ($host = www.api.rekonise.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
если ($host = api.rekonise.com) {
вернуть 301 https://$host$request_uri;
} # управляется Certbot
слушать 80;
слушать [::]:80;
имя_сервера api.rekonise.com www.api.rekonise.com;
вернуть 404; # под управлением Certbot
}