最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

多種不同的 MySQL 的 SSL 配置

 更新時間:2016年04月26日 15:02:38   作者:無若  
MySQL 只支持 TLS v1.0,默認不支持主機名驗證,所以你的證書可能是給db1.example.com的,也可能是給db2.example的,瀏覽器則可能會用OCSP、CRL's 或 CRLsets 來驗證證書是否有效。 MySQL 5.6以后就只支持CRL驗證。

在這篇博客的帖子里,我將會描述不同的使用MySQL數據庫的SSL配置方法。

SSL給了你什么?

你可以通過互聯網使用 MySQL 復制特性(replication) 或者通過互聯網連接到MySQL。

還有可能是你通過企業(yè)網去連接,這樣會有很多人訪問。如果你使用一個自帶設備(BYOD)網絡,這就更是一個問題了。

SSL在這里通過加密網絡防止有針對性的監(jiān)聽。在與正確的服務器進行交互時,可以有效應對中間人攻擊(man-in-the-middle attacks)。

你還可以使用SSL客戶端證書,讓它同密碼一起作為身份識別的二要素。

SSL不是唯一的選擇, 你可以使用SSH和許多MySQL GUI客戶端,類似MySQL Workbench提供的那個產品。 但是SSH的python腳本,或者mysqldump,不是那么易用。

需要注意的事情:

使用SSL在絕大多數情況下要比不使用SSL要好,所以沒有太多可能出現問題的地方。

但是以下幾點需要注意:

對安全性的錯誤估計

你認為你在SSL的保護之下,但是你可能忘記設置一些選項從而導致程序可以接受非SSL的連接,所以要確保設置必須使用SSL作為連接方式??梢允褂肳ireshark或者其它類似的工具來檢測你的流量是否都真的被加密處理。

沒有及時更新證書

你應該通過一些方法在證書即將過期的時候通知自己??梢允莕agios檢查,可以是日歷里面的小貼士,可以來自于證書簽發(fā)機構的email。如果證書過期,將會導致你的客戶端無法正常獲得響應。

性能

如果性能很重要,就應該做基準測試,來看看沒有SSL的情況下有什么影響。在 OpenSSL 和 YaSSL 下嘗試不同的密碼,并看哪個的執(zhí)行效果最佳。

使用流量監(jiān)測的工具

如果你在使用像 VividCortex,pt-query-digest 基于 pcap 的工具,那么你應該確保在部署完SSL后,這些工具還能用,可以提供密鑰來實現。然后使用一個非 Diffie-Hellman (DH)的密碼,或者使用其他的源,如 performance_schema、slow query log,這還要看你的應用程序支持哪種,也可能會包含一些負載均衡的設置。

MySQL 中的 SSL 和瀏覽器中的 SSL 有什么不同

瀏覽器默認有一個 CA 的信任列表,但 MySQL 默認是沒有的。這就是他們最大的不同。MySQL 和OpenVPN 使用SSL非常相似。

MySQL server 和 Web server 都開啟了 SSL,同時也都需要有客戶端證書,這是他們相同的地方。

有一些細微的協(xié)議支持差別,比如:MySQL 只支持 TLS v1.0,默認不支持主機名驗證,所以你的證書可能是給db1.example.com的,也可能是給db2.example的,瀏覽器則可能會用OCSP、CRL's 或 CRLsets 來驗證證書是否有效。 MySQL 5.6以后就只支持CRL驗證。

配置 1: Server/Client 的內部 CA

最基本的安裝和我創(chuàng)建mysslgen的位置。

首先在服務器上創(chuàng)建一個PKCS#1格式的密鑰,若PKCS#8不行。然后創(chuàng)建一個可以用CA部署的CSR(Certificate Signing Request證書簽名請求) 。最后結果是一個CA證書服務器和一個服務器的密鑰。筆者習慣用PEM格式的證書

服務器配置:

SSL證書服務器和密鑰(ssl-certandssl-key)

SSL CA 證書 (ssl-ca)

客戶端配置:

SSL CA 證書(ssl-ca)

要求賬戶用SSL驗證,那你的GRANT語句應該用REQUIRE SSL選項。

配置 2: Server/Client 的內部 CA 和 客戶端證書

首先得在服務器上開啟SSL,然后給客戶端創(chuàng)建證書。

然后在客戶端指定客戶端證書和密鑰 ssl-cert和ssl-key.

現在必須要用 REQUIRE X509來要求一個有效的證書。如果這個CA不只用在MySQL server上,那就不起作用了,因為其他人也有可能拿到有效的證書,

可以用 REQUIRE SUBJECT '/CN=myclient.example.com'來限制證書的使用。

在此設置證書是你的CA給頒發(fā)的,你頒發(fā)的證書你就能有很多可控的,結果就是你頒發(fā)的證書都是被信任的。

配置 3: Server/Client 與公共 CA

方案 3與方案 2相似。但公共的CA會指定多個的證書,同樣也會吊銷這些證書。

你應該了解 --ssl-verify-server-cert ,以確保服務器有一個帶主機名的證書。否則,有人可能會用一個不帶主機名的有效證書來發(fā)起中間人攻擊(Man-in-the-MiddleAttack,簡稱“MITM攻擊”)。

也應該使用 REQUIRE X509 字段,要求每個用戶 SUBJECT 、ISSUER(可選)字段。

配置 4: Server/Client 和多個公共 CA's

這個方案用起來顯得輕而易舉。

可以使用證書包 (一個文件多個證書),并用 ssl ca 命令指定此文件。

在Ubuntu系統(tǒng)上,這個證書由/etc/ssl/certs/ca-certificates.crt 下的 ca-certificates 包提供

其他選項,用“指定assl-capath”來代替“使用ssl-ca”,這樣就可以設置到/etc/ssl/certs里。如果想用CA的默認目錄,那就得運行OpenSSL 中的c_rehash 程序來生成正確的符號連接(只在OpenSSL下可用)。

配置 5: Replication(復制)

設置 CHANGE MASTER TO 命令中MASTER_SSL_* 就可實現。

如果開啟了主機名驗證,就確保用了 MASTER_SSL_VERIFY_SERVER_CERT。

只有這樣才能真正確保 replication 用戶的SSL連接是要求的SSL連接。如果SSL允許了,SHOW SLAVE STATUS就會顯示輸出,而不是不可用。

每臺服務器一個CA還是集中式CA?

可以每服務器用一個CA然后指定一個客戶端證書,但是每個服務器的客戶端都需要不同的證書來連接,也就是說你會發(fā)放很多CA證書。

所以你可能就會想要使用一個CA,而不是每個服務器一個CA。

出錯了怎么辦?

如果其中一個私有密鑰(客戶端,服務器或CA)損壞,有以下幾種辦法處理:

什么也不做,只要等到證書過期。這只適用于短暫的證書(如證書有效期是7天)。這樣做容易讓你受到攻擊,你也可能會有其他緩解風險的方法。問題是,每7天就得重啟MySQL,而且還需要一些自動分配證書的機制。

重新創(chuàng)建所有證書和密鑰(包括 CA)。這只適用于CA、服務器和用戶數量較少的情況。

用CRL(Certificate Revocation list證書吊銷列表)。 這樣做只在你的證書有正確序列號的情況下管用。此外,你要是有多個CA的話,就必須每個CA都捆綁CRL,并在c_rehash創(chuàng)建的符號連接的目錄中指定ssl-crl,指定ssl-crl路徑(僅OpenSSL)。如果使用CRL,那MySQL 的版本要是5.6或更高,然后更新CRL,也更新所有客戶端。

注意: 如果密鑰泄露了,就必須重新創(chuàng)建私有密鑰,僅用以前的CSR(證書簽名請求)是不夠的。

客戶端配置注意事項

ssl-ca 參數可在my.cnf的[client]部分設置,但這樣設置mysql binlog就不管用了,所以在客戶端用loose-ssl-ca 代替。ssl-key 和 ssl-cert 參數應該是在~/.my.cnf文件的[client]部分,這些文件都應該適當的保護起來。

目前以my_config_editor創(chuàng)建的'login-path'無法添加到SSL設置。

密碼注意事項

用 SSL 加密,可以設置一定的密碼,用 YaSSL 就很有限。當使用 OpenSSL 時,就可以使用一個密碼套件,這套件是一組特定的密碼集、一些過濾器和一個規(guī)則。

YaSSL, OpenSSL 的狀態(tài)變量注意事項

如果很難判斷你的MySQL用的是 OpenSSL 還是 YaSSL, 有些方法可以幫你,如使用命令ldd /path/to/mysqld。默認情況下 MySQL Community Edition 用的是 YaSSL , MySQL Enterprise Edition 用的是 OpenSSL。

根據SSL執(zhí)行情況,某些狀態(tài)變量可能更新的不正確。

為確保不受任何SSL漏洞影響,你最好參照 Oracle 關鍵補丁更新,保持你的 MySQL 和 OpenSSL及時更新。

運行 CA的注意事項

其實并沒有看起來那么容易,往往開始很簡單,往后很無奈。要十分肯定的知道怎么發(fā)布CRL,X509 擴展是什么,你都必須用什么。

有個網站告訴你如何配置你自己的CA:如何做一個自有的證書頒發(fā)機構(CA) - jamielinux

也有許多公共CA會給你私有的 CA 提供主機。

SSL/TLS書籍推薦

筆者推薦一本關于SSL的書:Bulletproof SSL and TLS 《SSL和TLS的防彈衣》

還有一本關于密碼學歷史的書,非常有趣:The Code Book

譯者高中時候讀過這本書的中文版《密碼故事》,確實不錯。

相關文章

  • MySQL/MariaDB 如何實現數據透視表的示例代碼

    MySQL/MariaDB 如何實現數據透視表的示例代碼

    這篇文章主要介紹了MySQL/MariaDB 如何實現數據透視表的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • windows 10下mysql 5.7.21 winx64安裝配置方法圖文教程

    windows 10下mysql 5.7.21 winx64安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了windows 10下mysql 5.7.21 winx64安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MySQL 慢查詢日志的開啟與配置

    MySQL 慢查詢日志的開啟與配置

    這篇文章主要介紹了MySQL 慢查詢日志的開啟與配置的方法,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2020-12-12
  • 詳解遠程連接Mysql數據庫的問題(ERROR 2003 (HY000))

    詳解遠程連接Mysql數據庫的問題(ERROR 2003 (HY000))

    本篇文章是對遠程連接Mysql數據庫的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 8中新增的這三大索引 隱藏、降序、函數

    MySQL 8中新增的這三大索引 隱藏、降序、函數

    這篇文章主要介紹了MySQL 8.x版本中新增的三大索引 隱藏索引、降索引序、函數索引,如果文章對你有點幫助,小伙伴們點贊、收藏、評論、分享走起呀
    2021-09-09
  • MySQL中的約束Constraint解讀

    MySQL中的約束Constraint解讀

    這篇文章詳細介紹了MySQL中的各種約束類型,包括非空約束、默認約束、檢查約束、唯一約束和主鍵約束,以及外鍵約束,每種約束類型都有其特定的用途和語法,并且可以是列級約束或表級約束,文章還探討了如何給約束命名、刪除約束
    2025-01-01
  • Ubuntu 18.04 安裝mysql5.7

    Ubuntu 18.04 安裝mysql5.7

    這篇文章主要為大家詳細介紹了Ubuntu 18.04 安裝mysql 5.7的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • mysql 使用B+樹索引有哪些優(yōu)勢

    mysql 使用B+樹索引有哪些優(yōu)勢

    這篇文章主要介紹了mysql 使用B+樹索引有哪些優(yōu)勢,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2021-01-01
  • MySQL優(yōu)化之對RAND()的優(yōu)化方法

    MySQL優(yōu)化之對RAND()的優(yōu)化方法

    這篇文章主要介紹了MySQL優(yōu)化之對RAND()的優(yōu)化方法,本文詳細分析了Mysql中對RAND()的幾種優(yōu)化方法,并最終得出一個結論,需要的朋友可以參考下
    2014-07-07
  • MySQL主從復制之GTID模式詳細介紹?

    MySQL主從復制之GTID模式詳細介紹?

    這篇文章主要介紹了MySQL主從復制之GTID模式,GTID的復制方式,它由UUID和事務ID兩個部分組成,具有GTID事務是全局唯一性的,并且一個事務對應一個GTID值、一個GTID值在同一個MySQL實例上只會執(zhí)行一次等特點,想了解更多的小伙伴可以參考下面詳細內容,希望對你有所幫助
    2022-02-02

最新評論

兴隆县| 开化县| 德昌县| 清远市| 台南市| 绍兴市| 肥西县| 怀宁县| 吉安县| 宁国市| 泽州县| 马尔康县| 万安县| 桂林市| 云梦县| 长丰县| 阳春市| 湘乡市| 宜兰市| 塘沽区| 蓬安县| 丽江市| 西乌珠穆沁旗| 资源县| 临沭县| 文安县| 阳新县| 新闻| 樟树市| 军事| 伊吾县| 分宜县| 云霄县| 瓮安县| 会理县| 绵竹市| 孟连| 明溪县| 苍梧县| 荣昌县| 汶川县|