Python을 사용하는 Ubuntu 서버에서 .pem 파일을 사용하는 ODBC 인증

Python을 사용하는 Ubuntu 서버에서 .pem 파일을 사용하는 ODBC 인증

아래 3개의 PEM 파일을 사용하여 Windows에서 MySQL 데이터베이스에 성공적으로 연결하고 데이터 소스를 설정할 수 있었습니다. (여기서는 문제 없습니다)

  • 클라이언트-key.pem
  • 클라이언트 인증서.pem
  • ca-cert.pem

하지만 Ubuntu Server 10.04에서 Python 코드를 통해 연결할 수도 있기를 원합니다. Python 및 MySQL Python 커넥터 설정이 있습니다. 그러나 예상한 대로 자격 증명만 연결하려는 시도는 실패합니다. 왜냐하면 이러한 PEM 인증서를 제출하는 인증이 필요하기 때문입니다.

**>>>** import mysql.connector
**>>>** cnx = mysql.connector.connect(user='odbc_user', password='mypassword',host='00.00.000.000',database='mydb')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/__init__.py", line 179, in connect
    return MySQLConnection(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 95, in __init__
    self.connect(**kwargs)
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/abstracts.py", line 719, in connect
    self._open_connection()
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 210, in _open_connection
    self._ssl)
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 144, in _do_auth
    self._auth_switch_request(username, password)
  File "/usr/local/lib/python2.6/dist-packages/mysql/connector/connection.py", line 177, in _auth_switch_request
    **raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'odbc_user'@'hide.ec2' (using password: YES)**
**>>>**

검색을 기반으로 시도했지만 진전이 없었습니다.

  • 3개 복사됨.pem파일을 제출하다/usr/share/ca-인증서/~처럼.crt문서.
  • Ran은 sudo update-ca-certificates이것을 다음에 추가합니다/etc/ssl/certs/ca-certificates.crt문서.

저는 Linux 전문가가 아니며, 제가 접하는 모든 것을 시도해 볼 뿐입니다. 따라서 이전에 이 작업을 수행한 사람이 있다면 귀하의 도움에 진심으로 감사하겠습니다.

답변1

    >>>import mysql.connector
    >>>cnx = mysql.connector.connect(user='odbc_user', password='password',host='00.00.00.000',database='database',
        ssl_ca='/home/akelly/ca-cert.pem',
        ssl_cert='/home/akelly/client-cert.pem',
        ssl_key='/home/akelly/client-key.pem')

관련 정보