delphi XE基于SSL的HTTPS服务器应用程序的认证文件(Certificate.cer、CACertificate1.cer、PrivateKey.key及OnGetPassword)的配置

delphi XE基于SSL的HTTPS服务器应用程序的认证文件(Certificate.cer、CACertificate1.cer、PrivateKey.key及OnGetPassword)的配置

https://download.csdn.net/download/pulledup/12362510 :在此下载源代码
现在主流的移动操作系统及各大应用APP的生态环境(比如腾讯应用宝、华为应用市场、百度应用市场等以及国外苹果App Store、谷歌商店Android Market等),为了保证用户的隐私和网络的安全请求、会话及数据传输等链路的信息安全,防止网络诈骗等,均要求开发者开发的APP必须支持SSL进行Https应用的访问,很多原来用delphi开发的App上架和升级都遇到麻烦,但很多同学不知怎样进行SSL的安装和https服务器应用的配置,本文轻松解决你的问题。

一、概念

        SSL(Secure Sockets Layer安全套接层,属协议层),其继任者TLS传输层安全(Transport Layer Security:TLS:属协议层)是为网络通信提供安全及数据完整性的一种安全协议。 
        TLS与SSL在传输层与应用层之间对网络连接进行加密提供协议(:协议:标准和规范)。

二、配置方法1:创建服务器应用程序的过程中配置和测试

三、方法2:在你的服务器应用程序的代码中进行应用程序级别的配置:

1、将上述三个 SSL认证所必须的文件放入你的应用的根,或直接在项目中分发出去;

2、服务器应用程序的主窗体中加入代码:

procedure TfmxMain.FormCreate(Sender: TObject);
var
  LIOHandleSSL: TIdServerIOHandlerSSLOpenSSL;
  LScheduler_SessionsThreadPool :TIdSchedulerOfThreadPool;
begin
  //1.产生Indy桥接服务器(即:Indy服务器的Http(s)协议的Web代理的连接器)
  //:TIdHTTPWebBrokerBridge的实例FServer:
    //:1、桥接了Indy的协议层和DataSnap的:
      //:Web.HTTPApp(协议)、Web.WebReq(web请求)、Web.WebBroker(web代理)
      //:Indy的网络协议层(Http和Https)非常成熟
      //:Indy桥接服务器单元(即:Indy服务器的Http(s)协议的Web代理的连接器单元):
        //:桥接了Indy的协议层及少数内核层和DataSnap的Web.HTTPApp(协议)、Web.WebReq(web请求)、Web.WebBroker(web代理)
          //:Indy的网络协议层非常成熟
      //:Indy的协议层:IdCustomHTTPServer
      //:Indy的少数内核层:IdContext, IdException, IdTCPServer, IdIOHandlerSocket,
    //:2、DataSnap的桥接具体用于:桥接ServerContainerUnit1.pas下的
      //:TDSServer:即Datasnap.DSServer.pas下的DS服务器:
        //:用于管理服务器类TDSServerClass和传输层的创建和生命周期:
           //:TDSServerClass:用于为远程客户端调用发布服务器端的方法ServerMethodsUnit1.pas:
  FServer := TIdHTTPWebBrokerBridge.Create(Self);
  //2.为桥接服务器TIdHTTPWebBrokerBridge实例化1个:
    //:Indy SSL的输入输出处理器TIdServerIOHandlerSSLOpenSSL(协议层):
  LIOHandleSSL := TIdServerIOHandlerSSLOpenSSL.Create(FServer);
  //3.Indy SSL的输入输出处理器TIdServerIOHandlerSSLOpenSSL(协议层):
    //:打开SSL证书文件并验证证书密码:
  LIOHandleSSL.SSLOptions.CertFile := 'Certificate.cer';
  LIOHandleSSL.SSLOptions.RootCertFile := 'CACertificate1.cer';
  LIOHandleSSL.SSLOptions.KeyFile := 'PrivateKey.key';
  LIOHandleSSL.OnGetPassword := OnGetSSLPassword;
    //:证书文件路径错了,则会报错:
      //Could not load certificate.
      //error:0B084002:x509 certificate
      //routines:x509_load_cert_clr_file:system lib
  //4.桥接服务器TIdHTTPWebBrokerBridge配置其输入输出处理器:
    //:为Indy SSL的输入输出处理器:
  FServer.IOHandler := LIOHandleSSL;
  //:概念:SSL(Secure Sockets Layer安全套接层,属协议层),其继任者TLS传输层安全(Transport Layer Security:TLS:属协议层)是为网络通信提供安全及数据完整性的一种安全协议
  //:TLS与SSL在传输层与应用层之间对网络连接进行加密提供协议(:协议:标准和规范)
  FServer.ListenQueue:=1000;
//{  //:根据情况自行加入:
  LScheduler_SessionsThreadPool:=TIdschedulerOfThreadPool.Create(FServer);
    //:产生并启动indy线程池实例
  LScheduler_SessionsThreadPool.PoolSize := 1000;
    //:修改增加线程池大小PoolSize
  FServer.Scheduler := LScheduler_SessionsThreadPool;
//}
end;

procedure TfmxMain.OnGetSSLPassword(var APassword: String);
//你申请的SSL证书文件的密码:
begin
  APassword := 'A******';
end;

附相关文章:

ssl证书绑定windows服务器端口及SSL配置命令详解及下载:

        https://blog.csdn.net/pulledup/article/details/106056206

delphi XE Restful:RestClien案例RESTDebugger.dproj和RESTDemos.dproj的调用参数及格式设置:   

        https://mp.csdn.net/console/editor/html/104242744

delphi Restful:客户端实现的四种方式及其比较

        https://blog.csdn.net/pulledup/article/details/104132753

delphi XE应用Restful时Rest组件的delphi XE ContentType即delphi XE mime type怎样获取和表达

        https://blog.csdn.net/pulledup/article/details/105749158

喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享:

猜你喜欢

转载自blog.csdn.net/pulledup/article/details/105408763