ปรากฎว่าการรองรับ TLS ขึ้นอยู่กับเวอร์ชันของโปรแกรมฐานข้อมูลที่แน่นอนที่คุณใช้บน RDS Aurora mySQL 5.6 รองรับเฉพาะ TLSv1.0 จนถึงเวอร์ชัน 1.23.1 ซึ่ง TLSv1.1 และ 1.2 จะพร้อมใช้งาน เวอร์ชันของเราคือ 1.22.something ดังนั้นฉันจึงต้องอัปเกรดเครื่องยนต์
ถึงอย่างนั้น มันจะใช้งานไม่ได้ เพราะ Ubuntu 20 ยังบังคับใช้ความยาวของคีย์ขั้นต่ำที่ 2048 บิต ซึ่ง Aurora mysql 5.6 นั้นไม่สามารถทำได้ และสำหรับทั้งหมดที่ฉันสามารถบอกได้ว่าสิ่งนี้ไม่สามารถเปลี่ยนแปลงได้ คุณจะพบเอกสารประกอบสำหรับพารามิเตอร์ฐานข้อมูลที่สามารถใช้เพื่อเปลี่ยนความยาวของคีย์ diffie-helman แต่กลับกลายเป็นว่าสิ่งเหล่านี้มีไว้สำหรับ SqlServer เท่านั้น ไม่ใช่ MySQL
ดังนั้น คุณยังคงต้องไปและใช้การเปลี่ยนแปลงใน opensl.cnf ของคุณตามที่อธิบายไว้ในคำตอบที่ยอมรับที่นี่: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level
สิ่งนี้เปลี่ยน SECLEVEL ของคุณเป็น 1 ดังนั้น opensl จะยอมรับคีย์ DHE ที่สั้นกว่า
ถึงอย่างนั้น แอปพลิเคชันสปริงบูตของฉันจะไม่เชื่อมต่อ แม้ว่าตอนนี้โต๊ะทำงานจะทำได้แล้ว นี่เป็นเพราะ JDBC ไม่ได้บอกเซิร์ฟเวอร์ว่าสามารถทำ TLSv1.2 ได้ แม้ว่ามันจะทำได้ทั้งหมด (ตัดสินใจแปลกๆ นั่นล่ะ) ดังนั้นเซิร์ฟเวอร์จะไม่พยายามส่งการจับมือ 1.2 แม้ว่าจะทำได้ก็ตาม
ในการบอก JDBC ให้ใช้ TLSv1.2 คุณต้องผนวกเข้ากับสตริงการเชื่อมต่อ:
jdbc:myslq://<host>/<db>?enabledTLSProtocols=TLSv1.2
ตอนนี้ทุกอย่างเชื่อมต่อกัน
ฉันชอบที่จะให้ออโรร่าส่งคีย์ที่ยาวขึ้นแทนที่จะลดความปลอดภัยของ Ubuntu แต่ดูเหมือนจะไม่มีทาง ถ้าใครรู้จักอย่างใดอย่างหนึ่งโปรดแจ้งให้เราทราบ