Tôi đã thiết lập một máy mới với Ubuntu 20 và nhận thấy rằng tôi không thể kết nối với cơ sở dữ liệu RDS của mình nữa.
Ứng dụng khởi động mùa xuân được cho là kết nối với môi trường phát triển đưa ra ngoại lệ sau:
javax.net.ssl.SSLHandshakeException: Không có giao thức thích hợp (giao thức bị vô hiệu hóa hoặc bộ mật mã không phù hợp)
Vì vậy, tôi đã tìm ra bàn làm việc mySql và thử với nó. Điều đó dẫn đến lỗi này:
ssl_choose_client_version: giao thức không được hỗ trợ
Tìm kiếm điều đó đã dạy tôi rằng Ubuntu 20 có TLSv1.2 được đặt làm phiên bản TLS tối thiểu và lỗi này xảy ra nếu máy chủ MySQL của bạn không hỗ trợ nó (từ đây: https://askubuntu.com/questions/1193629/why-mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v). Tôi đã thử bàn làm việc với SSL đã tắt và đủ chắc chắn rằng nó có thể thiết lập kết nối.
Vấn đề rõ ràng với điều này, đây là Amazon RDS... TLS 1.2 là phiên bản duy nhất không thể bị vô hiệu hóa, vì đó là phiên bản được sử dụng nội bộ, như được chỉ ra ở đây: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html
Vì vậy, thực sự, không nên có một vấn đề. Tôi bắt đầu nghi ngờ liệu phiên bản TLS có thực sự là vấn đề hay không. Nhưng vì tôi không có bất kỳ khách hàng tiềm năng nào khác, nên tôi đã làm theo sách dạy nấu ăn trong câu trả lời tại đây để định cấu hình lại openssl cục bộ của mình để cho phép TLS phiên bản 1 tối thiểu và hạ cấp mức bảo mật: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level
Và bạn có biết không, Workbench hiện được kết nối với SSL được đặt thành bắt buộc. Spring-Boot vẫn không được, tôi đoán tôi phải định cấu hình nó ở một nơi khác để nó nhận được bản ghi nhớ. Nhưng thay vì lãng phí thời gian vào việc đó, tôi muốn giải quyết vấn đề thực vấn đề, đó là tôi không thể kết nối thông qua TLSv1.2, trong khi đối với tất cả những gì tôi có thể nói là tôi thực sự có thể. Điều đó sẽ tốt hơn rất nhiều so với việc hạ cấp bảo mật của tôi.
Tôi đã cố gắng gia hạn chứng chỉ cơ sở dữ liệu trong trường hợp đó có thể là vấn đề, nhưng bảng điều khiển quản lý không tìm thấy gì sai với chứng chỉ và dường như sẽ không cho phép tôi thay thế nếu tôi không cần.
Vì vậy, tôi có một chút ý tưởng về những gì cần thử tiếp theo.