添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
delphi XE基于SSL的HTTPS服务器应用程序的认证文件(Certificate.cer、CACertificate1.cer、PrivateKey.key及OnGetPassword)的配置
最新推荐文章于 2022-10-21 12:46:06 发布
最新推荐文章于 2022-10-21 12:46:06 发布

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);
  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;
procedure TfmxMain.OnGetSSLPassword(var APassword: String);
//你申请的SSL证书文件的密码:
begin
  APassword := 'A******';

附相关文章:

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

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

今天做这么一个事,centos服务器,tomcat8+nginx1.6,现在要在上面运行cas4.0。所以需要配ssl,然后找教程,了解到,需要把tomcat和nginx的ssl配置好。到这里就晕了,tomcat配ssl需要一个.keystore文件,nginx则需要配一个.crt和一个.key文件。按照教程使用keytool生成了.keystore文件,然后我需要通过.keystore导出一个.crt文件,但是找了好多教程只是导出.cer文件。 我们一般说的证书就是数字证书:数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份 一般有两种:PFX证书、CER证书 PFX证书: 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。 一般RSA证书比较多,现在国内的RSA根证到期,有些企业已经不用了。 SM2证书: 1.二进制编码的证书 证书中没有私钥,DER 编码二进制格式的证书文件,以ce TIdHTTPWebBrokerBridge = class(TIdCustomHTTPServer)   private     procedure RunWebModuleClass(AThread: TIdContext; ARequestInfo: TIdHTTPRequestInfo;      AResponseInfo: TIdHTTPResponseInfo); 老版本的服务端和客户端通讯采用的WebBroker和webservice,新版采用datasnap和restful调用,虽然都基于Indy性能不咋的,但对于svn分级授权工具来说足够了。 <br /><br /><br />    在上次的文章中讨论了如何把传统的Delphi 主从架构应用程序逐渐转换为DataSnap JSON服务器,在本篇文章中让我们正式讨论如何使用Delphi XE开发DataSnap/REST服务器,由于这其中牵涉到非常多的技术,因此我们将花数篇的篇幅来讨论。现在就让我们从DataSnap/REST服务器开始。<br /><br />开发DataSnap服务器<br /><br />    Delphi XE版的DataSnap允许开发人员同时在DataSnap服务器 Creating MySOAPService.exe (an NT Service). Step by step instructions -- Delphi 7 Enterprise Edition. First create and build the MySOAPServer project as shown above because source files from that pr import java.io.FileInputStream; import java.io.FileNotFoundException; import java.security.PublicKey; import java.security.cert.Certificate; import java.security... 一、NetHTTP技术体系: TNetHTTPClient; TNetHTTPRequest二、REST技术体系: TRESTClient; TRESTRequest; TRESTResponse; TRESTResponseDataSetAdapter三、Indy技术体系:IdHTTP + IdSSLOpenSS... 1、JS-SDK是对之前的 WeixinJSBridge 的一个包装 2017年前,在移动端,受限于设备性能和网络速度,白屏会更加明显。我们团队把很多技术精力放置在如何帮助平台上的Web开发者解决这个问题。因此我们设计了一个 JS-SDK 的增强版本,其中有一个重要的功能,称之为“微信 Web 资源离线存储”。 微信 Web 资源离线存储是面向 Web 开发者提供的基于微...