Dubbo3 TLS

2022-04-01 10:13 更新

通過 TLS 保證傳輸安全

2.7.5 版本在傳輸鏈路的安全性上做了很多工作,對于內(nèi)置的 Dubbo Netty Server 和新引入的 gRPC 協(xié)議都提供了基于 TLS 的安全鏈路傳輸機制。

TLS 的配置都有統(tǒng)一的入口,如下所示:

Provider 端
SslConfig sslConfig = new SslConfig();
sslConfig.setServerKeyCertChainPath("path to cert");
sslConfig.setServerPrivateKeyPath(args[1]);
// 如果開啟雙向 cert 認(rèn)證
if (mutualTls) {
  sslConfig.setServerTrustCertCollectionPath(args[2]);
}

ProtocolConfig protocolConfig = new ProtocolConfig("dubbo/grpc");
protocolConfig.setSslEnabled(true);
Consumer 端
if (!mutualTls) {}
    sslConfig.setClientTrustCertCollectionPath(args[0]);
} else {
    sslConfig.setClientTrustCertCollectionPath(args[0]);
    sslConfig.setClientKeyCertChainPath(args[1]);
    sslConfig.setClientPrivateKeyPath(args[2]);
}

為盡可能保證應(yīng)用啟動的靈活性,TLS Cert 的指定還能通過 -D 參數(shù)或環(huán)境變量等方式來在啟動階段根據(jù)部署環(huán)境動態(tài)指定,具體請參見 Dubbo 配置讀取規(guī)則與 TLS 示例

提示
參考 Dubbo 配置讀取規(guī)則,TLS 示例
如果要使用的是 gRPC 協(xié)議,在開啟 TLS 時會使用到協(xié)議協(xié)商機制,因此必須使用支持 ALPN 機制的 Provider,推薦使用的是 netty-tcnative,具體可參見 gRPC Java 社區(qū)的總結(jié)

在服務(wù)調(diào)用的安全性上,Dubbo 在后續(xù)的版本中會持續(xù)投入,其中服務(wù)發(fā)現(xiàn)/調(diào)用的鑒權(quán)機制預(yù)計在接下來的版本中就會和大家見面。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號