mysql之使用SSL連線

myownstars發表於2012-12-24

使用SSL

預設情況下mysql使用不加密的連線,也可使用—compress選項壓縮傳送資料,但是仍舊不夠安全;

 

配置SSL

系統必須支援OpenSSL/yaSSL,為了方便Mysql預設內建了yaSSL

檢視伺服器變數have_ssl,是否支援SSL

mysql> SHOW VARIABLES LIKE 'have_ssl';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| have_ssl      | YES   |

+---------------+-------+

--若為disabled,說明此功能沒有啟用,使用—ssl-xxx選項重啟伺服器

http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/creating-ssl-certs.html

 

使用SSL連線

使用下列選項啟動mysql伺服器,即可接受使用SSL連線的客戶端了

  • --ssl-ca identifies the Certificate Authority (CA) certificate.
  • --ssl-cert identifies the server public key certificate. This can be sent to the client and authenticated against the CA certificate that it has.
  • --ssl-key identifies the server private key.

例如

shell> mysqld --ssl-ca=ca-cert.pem \

         --ssl-cert=server-cert.pem \

         --ssl-key=server-key.pem

而客戶端須採用同樣的選項,且CA證書必須要與伺服器的保持一致

如果某使用者使用grant .. require ssl建立或沒有特定的SSL要求,只需呼叫如下命令連線伺服器

shell> mysql --ssl-ca=ca-cert.pem

--伺服器啟動時至少要指定—ssl-cert/--ssl-key

 

如果需要客戶端證書,則在建立使用者時需使用require X509選項,在連線伺服器是必須如下所示,否則可能會被拒絕

shell> mysql --ssl-ca=ca-cert.pem \

       --ssl-cert=client-cert.pem \

       --ssl-key=client-key.pem

 

檢視當前連線是否使用SSL,可檢視Ssl_cipher的值

mysql> SHOW STATUS LIKE 'Ssl_cipher';

+---------------+--------------------+

| Variable_name | Value              |

+---------------+--------------------+

| Ssl_cipher    | DHE-RSA-AES256-SHA |

+---------------+--------------------+

 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-751574/,如需轉載,請註明出處,否則將追究法律責任。

相關文章