우분투 20.04에서 공식적으로 설치되는 버전은 10.3 이다
비공식으로 10.5 로 업그레이드 하고나면
우분투에서 openssl 로 만든 인증서를 윈도우로 가져와서 이인증서로 DB로 접속하면
갑자기 HeidiSQL 도 그렇고
ERROR 2026 (HY000): SSL connection error: no cipher match. Error 0x80090331(SEC_E_ALGORITHM_MISMATCH)
와 같은 오류를 내면서 연결실패가 뜬다.
긴시간 구글링을 해보았지만 뾰족한 해결책이 없는 가운데
( 2023년 5월 최근 다시 구글링 해본결과 문제의 원인과 해결책을 찾았다.
해결책 : https://ddart.net/xe/board/49932 )
mysql --ssl -hhost -uuser -p
위처럼 인증서 옵션 없이 그냥 ssl 접속하니까 연결이 된다.
인증서 옵션을 안주면 서버, 클라이언트 상호 인증이 가능한 2 Way TLS 인증방식에서 서버쪽 인증만 가능한 1 Way TLS 인증방식으로 바뀌며
1Way 인증 이더라도 데이터암호화는 양방향 다 이루어진다.
해결책을 찾을동안은 1 Way TLS 인증으로 접속해야할듯하다.
Heidi SQL에서는 SSL 탭에서 인증서 경로를 다 삭제시키고
SSL에만 check 하고 접속하면 된다.
libmariadb.dll 에서는
mysql_init();
mysql_ssl_set(&mysql, NULL, NULL, NULL, NULL, NULL);
후에
mysql_real_connect 하면 되고
php에서는
$mysqli = new mysqli(); if ($mysqli->real_connect("host", "user", "password", "db", 0, "", MYSQLI_CLIENT_SSL)) { }
처럼 하면 된다.