MySQL 5.7에서 기본 SSL 인증서/키를 사용합니까?

MySQL 5.7에서 기본 SSL 인증서/키를 사용합니까?

apt-get루트 계정을 사용하여 연결하고 SSL 상태를 확인할 때 Percona MySQL 5.7(5.7.21-20-log)을 사용하여 설치했습니다 .

# mysql --ssl
mysql> show variables like '%ssl%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| have_openssl  | YES             |
| have_ssl      | YES             |
| ssl_ca        | ca.pem          |
| ssl_capath    |                 |
| ssl_cert      | server-cert.pem |
| ssl_cipher    |                 |
| ssl_crl       |                 |
| ssl_crlpath   |                 |
| ssl_key       | server-key.pem  |
+---------------+-----------------+

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.21-20, for debian-linux-gnu (x86_64) using  6.3

Connection id:      31
Current database:
Current user:       root@localhost
SSL:            Cipher in use is ECDHE-RSA-AES128-GCM-SHA256

따라서 기본적으로 SSL이 사용됩니다. 그러나 전체 명령을 사용하면

mysql -h 127.0.0.1 -P 3306 -u root  -p  --ssl-ca=/var/lib/mysql/ca.pem --ssl-cert=/var/lib/mysql/server-cert.pem --ssl-key=/var/lib/mysql/server-key.pem

오류를 반환합니다.

ERROR 2026 (HY000): SSL connection error: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

답변1

문제는 클라이언트 측에서 서버 인증서와 키를 사용하는 것입니다.

--ssl-cert=/var/lib/mysql/server-cert.pem --ssl-key=/var/lib/mysql/server-key.pem

문서화 된대로6.4.2 암호화된 연결을 위한 명령 옵션(강조는 내가 함):

--ssl-cert=file_name

PEM 형식의 SSL 공개 키 인증서 파일의 경로 이름입니다.클라이언트 측에서는 클라이언트 공개 키 인증서입니다.. 서버 측에서는 이것이 서버 공개 키 인증서입니다. 서버 측에서 이 옵션은 을 의미합니다 --ssl.

--ssl-key=file_name

PEM 형식의 SSL 개인 키 파일의 경로 이름입니다. 클라이언트 측에서는 다음과 같습니다.클라이언트 개인 키. 서버 측에서는 이것이 서버 개인 키입니다. 서버 측에서 이 옵션은 을 의미합니다 --ssl.

--ssl,만 사용하여 TLS 연결을 강제할 수 있습니다 .

mysql -h 127.0.0.1 -P 3306 -u root -p --ssl

여기서 유용할 수도 있습니다 --ssl-cipher=cipher_list. 이를 통해 서버 구성에서 허용되는 경우에도 연결이 원하지 않는 암호를 사용하지 않는지 확인할 수 있습니다. 그러나 두 가지 모두에 대한 전원이 있는 경우 이는 주로 서버 측에서 구성되어야 합니다.

관련 정보