TLS'i zorunlu kıl, TLS'siz bağlantıları bul, sertifikayı restart'sız yenile
MySQLGüvenlikKomut
SELECT @@require_secure_transport, @@tls_version, @@ssl_ca, @@ssl_cert;
SELECT * FROM performance_schema.tls_channel_status
WHERE PROPERTY IN ('Enabled', 'Current_tls_version', 'Current_tls_cert', 'Ssl_server_not_after');
-- Aktif baglantilar ve TLS surumleri (bos = TLS yok)
SELECT t.PROCESSLIST_USER AS user, t.PROCESSLIST_HOST AS host, t.CONNECTION_TYPE, sv.VARIABLE_VALUE AS tls_version
FROM performance_schema.threads t
LEFT JOIN performance_schema.status_by_thread sv ON sv.THREAD_ID = t.THREAD_ID AND sv.VARIABLE_NAME = 'Ssl_version'
WHERE t.TYPE = 'FOREGROUND' AND t.PROCESSLIST_USER IS NOT NULL;
SET PERSIST require_secure_transport = ON;
-- Yeni sertifika dosyalarini kopyaladiktan sonra
ALTER INSTANCE RELOAD TLS;Ne yapar?
Sunucunun TLS yapılandırmasını, sertifika bitiş tarihini ve her bağlantının TLS kullanıp kullanmadığını gösterir; TCP üzerinden şifresiz bağlantıyı tamamen yasaklar ve sertifikayı sunucuyu durdurmadan yeniler.
Ne zaman kullanılır?
Güvenlik denetimi / uyum gereğinde, sertifika süresi dolmadan önce ve şifresiz bağlanan eski istemcileri tespit ederken.
Dikkat
require_secure_transport=ON Unix socket ve shared memory bağlantılarını etkilemez; bunlar güvenli sayılır. Açmadan önce TLS'siz bağlanan istemcileri bul; aksi halde 3159 hatasıyla bağlanamazlar. ALTER INSTANCE RELOAD TLS mevcut bağlantıları etkilemez, yalnız yenilere uygulanır; sertifika dosyası hatalıysa hata verir ve eski sertifikayla devam eder. Otomatik üretilen self-signed sertifika istemcide VERIFY_CA / VERIFY_IDENTITY ile doğrulanamaz; production'da kurum CA'sıyla imzalı sertifika kullan.