ไม่กี่เดือนที่ผ่านมา ฉันเริ่มได้รับการร้องเรียนจากผู้ใช้หลายสิบรายเกี่ยวกับข้อผิดพลาดเมื่อเชื่อมต่อกับไซต์ของฉัน เมื่อฉันดู error.log ของ nginx ฉันเห็นข้อผิดพลาด SSL รายวัน:
ฉันไม่รู้ว่าอะไรเป็นสาเหตุของปัญหานี้เนื่องจาก 99% ของผู้ใช้กำลังประสบปัญหาและฉันไม่สามารถทำซ้ำได้ด้วยตัวเอง ผู้ใช้รายหนึ่งกล่าวว่าการเปลี่ยนไปใช้ VPN ช่วยแก้ปัญหาให้เขาได้ โพสต์อื่น ๆ ใน stackoverflow แนะนำว่าสิ่งนี้เกิดขึ้นกับคำขอที่เป็นอันตรายจาก ip เดียวกัน แต่ไม่ใช่ในกรณีนี้
ไม่มีใครรู้วิธีแก้ไขปัญหานี้หรือไม่?
(ฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ กับเซิร์ฟเวอร์/การกำหนดค่านี้มาหลายเดือนแล้ว)
เว็บเซิร์ฟเวอร์ทำงานบน Ubuntu 20.10
ข้อผิดพลาด Nginx.log
2022/04/16 04:40:19 [crit] 809329#809329: *13542487 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 138.197.194.139 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 04:40:32 [crit] 809329#809329: *13542919 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 38.132.118.76 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 04:58:54 [crit] 809329#809329: *13564742 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL, ไคลเอ็นต์: 165.227.227.95, เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 05:10:29 [crit] 809329#809329: *13578753 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 138.197.194.139 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 05:59:32 [crit] 809329#809329: *13638601 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 178.73.215.171 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 07:16:27 [crit] 809330#809330: *13730741 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 65.49.20.67 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 07:18:19 [crit] 809330#809330: *13733448 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL ลูกค้า: 192.241.223.231 เซิร์ฟเวอร์ : 0.0.0.0:443
2022/04/16 09:51:15 [crit] 809330#809330: *13937194 SSL_do_handshake() ล้มเหลว (SSL: error:141CF06C:SSL Routines:tls_parse_ctos_key_share:bad key share) ขณะจับมือ SSL, ไคลเอ็นต์: 165.227.227.95, เซิร์ฟเวอร์ : 0.0.0.0:443
การกำหนดค่า Nginx
เซิร์ฟเวอร์ {
server_name api.rekonise.com www.api.rekonise.com;
ที่ตั้ง / {
proxy_pass http://localhost:3000/;
proxy_http_version 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;
server_name api.rekonise.com www.api.rekonise.com;
กลับ 404; # จัดการโดย Certbot
}