程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 多種分歧的 MySQL 的 SSL 設置裝備擺設

多種分歧的 MySQL 的 SSL 設置裝備擺設

編輯:MySQL綜合教程

多種分歧的 MySQL 的 SSL 設置裝備擺設。本站提示廣大學習愛好者:(多種分歧的 MySQL 的 SSL 設置裝備擺設)文章只能為提供參考,不一定能成為您想要的結果。以下是多種分歧的 MySQL 的 SSL 設置裝備擺設正文


在這篇博客的帖子裡,我將會描寫分歧的應用MySQL數據庫的SSL設置裝備擺設辦法。

SSL給了你甚麼?

你可以經由過程互聯網應用 MySQL 復制特征(replication) 或許經由過程互聯網銜接到MySQL。

還有能夠是你經由過程企業網去銜接,如許會有許多人拜訪。假如你應用一個自帶裝備(BYOD)收集,這就更是一個成績了。

SSL在這裡經由過程加密收集避免有針對性的監聽。在與准確的辦事器停止交互時,可以有用應對中央人進擊(man-in-the-middle attacks)。

你還可使用SSL客戶端證書,讓它同暗碼一路作為身份辨認的二要素。

SSL不是獨一的選擇, 你可使用SSH和很多MySQL GUI客戶端,相似MySQL Workbench供給的誰人產物。 然則SSH的python劇本,或許mysqldump,不是那末易用。

須要留意的工作:

應用SSL在絕年夜多半情形下要比不應用SSL要好,所以沒有太多能夠湧現成績的處所。

然則以下幾點須要留意:

對平安性的毛病估量

你以為你在SSL的掩護之下,然則你能夠忘卻設置一些選項從而招致法式可以接收非SSL的銜接,所以要確保設置必需應用SSL作為銜接方法。可使用Wireshark或許其它相似的對象來檢測你的流量能否都真的被加密處置。

沒有實時更新證書

你應當經由過程一些辦法在證書行將過時的時刻告訴本身。可所以nagios檢討,可所以日歷外面的小貼士,可以來自於證書簽發機構的email。假如證書過時,將會招致你的客戶端沒法正常取得呼應。

機能

假如機能很主要,就應當做基准測試,來看看沒有SSL的情形下有甚麼影響。在 OpenSSL 和 YaSSL 下測驗考試分歧的暗碼,並看哪一個的履行後果最好。

應用流量監測的對象

假如你在應用像 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,同時也都須要有客戶端證書,這是他們雷同的處所。

有一些纖細的協定支撐差異,好比:MySQL 只支撐 TLS v1.0,默許不支撐主機名驗證,所以你的證書能夠是給db1.example.com的,也能夠是給db2.example的,閱讀器則能夠會用OCSP、CRL's 或 CRLsets 來驗證證書能否有用。 MySQL 5.6今後就只支撐CRL驗證。

設置裝備擺設 1: Server/Client 的外部 CA

最根本的裝置和我創立mysslgen的地位。

起首在辦事器上創立一個PKCS#1格局的密鑰,若PKCS#8不可。然後創立一個可以用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,然後給客戶端創立證書。

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

如今必需要用 REQUIRE X509來請求一個有用的證書。假如這個CA不只用在MySQL server上,那就不起感化了,由於其別人也有能夠拿到有用的證書,

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

在此設置證書是你的CA給發表的,你發表的證書你就可以有許多可控的,成果就是你發表的證書都是被信賴的。

設置裝備擺設 3: Server/Client 與公共 CA

計劃 3與計劃 2類似。但公共的CA會指定多個的證書,異樣也會撤消這些證書。

你應當懂得 --ssl-verify-server-cert ,以確保辦事器有一個帶主機名的證書。不然,有人能夠會用一個不帶主機名的有用證書來提議中央人進擊(Man-in-the-MiddleAttack,簡稱“MITM進擊”)。

也應當應用 REQUIRE X509 字段,請求每一個用戶 SUBJECT 、ISSUER(可選)字段。

設置裝備擺設 4: Server/Client 和多個公共 CA's

這個計劃用起來顯得易如反掌。

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

在Ubuntu體系上,這個證書由/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然後指定一個客戶端證書,然則每一個辦事器的客戶端都須要分歧的證書來銜接,也就是說你會發放許多CA證書。

所以你能夠就會想要應用一個CA,而不是每一個辦事器一個CA。

失足了怎樣辦?

假如個中一個公有密鑰(客戶端,辦事器或CA)破壞,有以下幾種方法處置:

甚麼也不做,只需比及證書過時。這只實用於長久的證書(如證書有用期是7天)。如許做輕易讓你遭到進擊,你也能夠會有其他減緩風險的辦法。成績是,每7天就得重啟MySQL,並且還須要一些主動分派證書的機制。

從新創立一切證書和密鑰(包含 CA)。這只實用於CA、辦事器和用戶數目較少的情形。

用CRL(Certificate Revocation list證書撤消列表)。 如許做只在你的證書有准確序列號的情形下管用。另外,你如果有多個CA的話,就必需每一個CA都綁縛CRL,並在c_rehash創立的符號銜接的目次中指定ssl-crl,指定ssl-crl途徑(僅OpenSSL)。假如應用CRL,那MySQL 的版本如果5.6或更高,然後更新CRL,也更新一切客戶端。

留意: 假如密鑰洩漏了,就必需從新創立公有密鑰,僅用之前的CSR(證書簽名要求)是不敷的。

客戶端設置裝備擺設留意事項

ssl-ca 參數可在my.cnf的[client]部門設置,但如許設置mysql binlog就不論用了,所以在客戶端用loose-ssl-ca 取代。ssl-key 和 ssl-cert 參數應當是在~/.my.cnf文件的[client]部門,這些文件都應當恰當的掩護起來。

今朝以my_config_editor創立的'login-path'沒法添加到SSL設置。

暗碼留意事項

用 SSL 加密,可以設置必定的暗碼,用 YaSSL 就很無限。當應用 OpenSSL 時,便可以應用一個暗碼套件,這套件是一組特定的暗碼集、一些過濾器和一個規矩。

YaSSL, OpenSSL 的狀況變量留意事項

假如很難斷定你的MySQL用的是 OpenSSL 照樣 YaSSL, 有些辦法可以幫你,如應用敕令ldd /path/to/mysqld。默許情形下 MySQL Community Edition 用的是 YaSSL , MySQL Enterprise Edition 用的是 OpenSSL。

依據SSL履行情形,某些狀況變量能夠更新的不准確。

為確保不受任何SSL破綻影響,你最好參照 Oracle 症結補釘更新,堅持你的 MySQL 和 OpenSSL實時更新。

運轉 CA的留意事項

其實並沒有看起來那末輕易,常常開端很簡略,往後很無法。要非常確定的曉得怎樣宣布CRL,X509 擴大是甚麼,你都必需用甚麼。

有個網站告知你若何設置裝備擺設你本身的CA:若何做一個自有的證書發表機構(CA) - jamielinux

也有很多公共CA會給你公有的 CA 供給主機。

SSL/TLS書本推舉

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

還有一本關於暗碼學汗青的書,異常風趣:The Code Book

譯者高中時刻讀過這本書的中文版《暗碼故事》,確切不錯。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved