Невозможно TLS подключиться к GCP Cloud SQL (MySQL) с использованием python3 - PullRequest
1 голос
/ 21 апреля 2020
import ssl

sc = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
sc.load_verify_locations(cafile='./server-ca.pem')
sc.load_cert_chain(certfile='./client-cert.pem', keyfile='./client-key.pem')

#sc.check_hostname = False

async with aiomysql.create_pool(
    host=host,
    port=port,
    user=user,
    password=password,
    db=db,
    ssl=sc
)

Я получаю ошибку, подобную этой.

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] сертификат не прошел проверку: несоответствие IP-адреса, сертификат недействителен для «ip_address». (_ssl. c: 1108)

server-ca.pem, client-cert.pem и client-key.pem экспортируются из вкладки подключения в GCP Cloud SQL.

#mysql --ssl-ca=./server-ca.pem --ssl-cert=./client-cert.pem --ssl-key=./client-key.pem --host=host --user=user --password

Эту команду mysql можно использовать для доступа.

Я бы хотел, чтобы вы сказали мне, в чем проблема.

1 Ответ

0 голосов
/ 21 апреля 2020

Только что столкнулся с той же проблемой. Вам нужно установить параметр check_hostname=False, чтобы SSL не пытался его проверить.

ssl = {
  'cert': ...,
  'key': ...,
  'ca': ...,
  'check_hostname': False,
}

Я использую Py MySQL. Вы можете посмотреть, как это относится к SSLContext в вашем случае.

...