DataSnap 的服务器开启 TLS 1.2支持

博客介绍了如何在RADStudio 1.4.1之后的版本中使DataSnap支持TLS1.2,包括更新OpenSSL到最新版本并在DataSnap Server主表单的OnCreate事件中添加必要的代码来启用TLS1.2支持。

最近有好幾位朋友寫信詢問我有關DataSnap和支援TLS 1.2的問題, 看來很了很多朋友還在使用DataSnap啊. 由於我已經有一段時間沒有使用DataSnap了, 記憶有點模糊, 因此也去查了一下原因順便更新一下對於DataSnap的記憶.

在RAD Studio 1.4.1的Bug修正文件中可以看到下面的說明:

TLS 1.2 support for Datasnap standalone or windows service server

這證明在1.4.1之後的DataSnap已經可以支援TLS 1.2了, 那麼為什麼有許多使用DataSnap的朋友在使用/支援TLS 1.2上仍然有問題呢? 其實原因很簡單, 可能只是這些朋友沒有注意一, 二個小細節.

要讓1.4.1之後的DataSnap支援TLS 1.2, 使用DataSnap的朋友需要完成下面的步驟:

  1. 更新您的OpenSSL到最新的版本. 例如您可以到 fulgan面新您的OpenSSL https://indy.fulgan.com/SSL/.
  2. 在您的DataSnap Sever主表單的OnCreate事件中應該可以類似看到如下的程式碼:
procedure TForm1.FormCreate(Sender: TObject);
var
  LIOHandleSSL: TIdServerIOHandlerSSLOpenSSL;
begin
  FServer := TIdHTTPWebBrokerBridge.Create(Self);
  LIOHandleSSL := TIdServerIOHandlerSSLOpenSSL.Create(FServer);
  LIOHandleSSL.SSLOptions.CertFile := '';
  LIOHandleSSL.SSLOptions.RootCertFile := '';
  LIOHandleSSL.SSLOptions.KeyFile := '';
  LIOHandleSSL.OnGetPassword := OnGetSSLPassword;
  FServer.IOHandler := LIOHandleSSL;
  FServer.OnQuerySSLPort := OnQuerySSLPort;
end;

您需要加入如下一行的程式碼來啟動支援TLS 1.2:

LIOHandleSSL.SSLOptions.Method := sslvTLSv1_2;

這樣應該就可以支援TLS 1.2了

------------------------------------------

这个就是采用 TIdTCPServer 或者 TIdHTTPServer 的时候需要支持 TLS1.2 的方法。

我之前有博客写如何让 TIdTCPServer 支持 TLS,也可以参考。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值