实现kbmmw web server 支持https

在以前的文章里面介绍过kbmmw 做web server.

前几天红鱼儿非要我给他做一个支持https 的web server.

其实kbmmw 支持https 有好几种方法:

1. 使用isapi 部署到iis 或者是apache 上,使用iis 或apache 的https 功能;

2.通过代理方式,使用使用iis 或apache 的https 功能。

今天通过kbmmw 的原生indy 方式实现一下https 支持。

由于是测试,不可能使用真正的证书服务。要应用到商业使用,要申请商用证书。

这里只是说明实现方式。

首先我们利用我们以前的web server 程序。

这服务器上加一个TkbmMWTCPIPIndyServerTransport,改名为sslt, 设置绑定端口443, 同时streamformat

设为AJAX.

并设置事件:

procedure TForm1.ssltConnect(AContext: TIdContext);
begin
  if AContext.Connection.IOHandler is TIdSSLIOHandlerSocketBase then
       TIdSSLIOHandlerSocketBase(AContext.Connection.IOHandler).PassThrough:=false;
end;

再放一个TIdServerIOHandlerSSLOpenSSL ,设置必要的参数如图;

注意,在单元引用里面要加入 IdContext 。

现在应该可以编译通过,但是ssl 还没有起作用。

现在需要为ssl 生成相关的key 与证书文件。

由于indy 是用openssl 实现证书的。我们先要下载一个openssl.

没有Linux ,就直接使用官网上的windows 版。

在这里下载http://www.openssl.org/related/binaries.html

我下载的文件名为Win32OpenSSL-1_0_1h.exe。

安装到系统上,运行就会出现黑窗口。

输入命令 genrsa -des3 -out kbmmw.key 1024

屏幕让输入key 的密码,随便输一个字符串。这里是xalion.要输两次,保持一致就可以了。

现在生成了key 文件,继续努力,生成证书文件。

把openssl 目录里面的openssl.cfg 拷贝一份,命名为openssl.cnf.

还是命令行:

req -new -x509 -days 365 -key kbmmw.key -out kbmmw.crt -config openssl.cnf

输入密码,然后填入相应的国家、组织、名字、邮件等信息。

填完后,就生成了证书。

把这两个文件放到一个固定的目录。

例如d:\crt.

回到前面我们的delphi 程序。

开始设置相关的属性。

并加入事件。

procedure TForm1.sslGetPassword(var Password: string);
begin
    Password:=‘xalion‘;
end;

最后要把ssl 处理挂接到sslt 对象上。

在服务器激活前,加入下面代码:

  sslt.IdTCPServer.IOHandler:=ssl;

如图

ok, 所有的东西都设置完了,准备发射。

编译运行,启动服务器。

注意,你的机器上一定要把开着443 端口的程序关掉。例如vmware.

在浏览器里面输入https://127.0.0.1.

第一次会出现

说明这个证书是假的,同时说明我们的系统工作正常了。

确认这个例外。

就可以通过https 正常访问web 了

好了,就这么多了。

实现kbmmw web server 支持https

时间: 2024-10-11 05:29:32

实现kbmmw web server 支持https的相关文章

Web Server CA证书签名步骤和自签名测试,支持多域名

Web Server支持HTTPS访问需要两个文件,私钥和证书.私钥和证书都放在服务器上,私钥用来加密数据,证书传递给客户端.自己签名的证书在传递给浏览器的时,因为证书不被信任,所以会弹出连接不安全,一般点高级->继续浏览,还是可以访问网页.如果我们的证书被根证书厂商签名过的话,就不会弹出不安全的提示,浏览器地址栏一般还有绿色小锁标志.以下来说一下怎么一步步生成证书. 1. 使用openssl生成私钥文件server.key,以下的步骤都是在Ubuntu上的使用openssl操作的,需要注意一下

Thawte SSL Web Server 多域型SSL证书

Thawte SSL Web Server 多域型SSL证书,最多支持25个域名,需要验证域名所有权和申请单位信息,属于企业验证型SSL证书,提供40位/56位/128位,最高支持256位自适应加密.证书申请后2-3个工作日经过Thawte审核验证,签发证书. Thawte SSL Web Server 多域型产品特点 验证域名,验证申请单位资料,证书2-3个工作日颁发,一张证书可以安装在多台服务器上: 99+% 浏览器支持,支持移动终端,支持多域名,支持通配 提供最高至256位加密:支持SHA

Web API应用支持HTTPS的经验总结

在我前面介绍的WebAPI文章里面,介绍了WebAPI的架构设计方面的内容,其中提出了现在流行的WebAPI优先的路线,这种也是我们开发多应用(APP.微信.微网站.商城.以及Winform等方面的整合)的时候值得考虑的线路之一.一般情况下,由于HTTP协议的安全性,传递的参数容易被拦截,从而可能导致潜在的危险,所以一般WebAPI接口层都采用了HTTPS协议的,也就是采用SSL层来对数据进行安全性的加密的. 1.HTTPS基础知识介绍 1) HTTPS HTTPS(全称:Hypertext T

(原创)linux下Microsoft/cpprestsdk支持https(server)

原创,转载请标明源地址 之前看网上一堆的资料说Microsoft/cpprestsdk不支持https或者说只支持window下的https,差点就被误导了,没办法,只好自己去翻了下源代码 先说明下linux版本把,centos7 创建ssl证书啥的,网上一堆的资料,这边就不再说了,直接贴源代码了 #include <stdio.h>#include <cpprest/uri.h>#include <cpprest/http_listener.h>#include &l

支持Lower ASCII提供简易的编码控制字符方法的服务器控件Barcode Web Server Control

ASP.NET Barcode Web Server Control 是一款自定义服务器控件,被设计用于ASP.NET Web应用程序中.它可与Microsoft Visual Studio及其他的.NET开发环境兼容.所有类似的条码符号编码规格都是合并成单一的,小的,全功能的,可再发布的文件,不需要任何认证码或激活. 具体功能: 永久免收版权费用可用的开发许可具有该特点. 三种操作模式支持不同的实现方法. 100%托管代码可在Visual C# .NET 中使用强命名签名和签名的DLL来创建.

Jexus-5.6.3使用详解、Jexus Web Server配置

一.Jexus Web Server配置 在 jexus 的工作文件夹中(一般是“/usr/jexus”)有一个基本的配置文件,文件名是“jws.conf”. jws.conf 中至少有 SiteConfigDir 和 SiteLogDir 两行信息:SiteConfigDir=siteconf      #指的是存放网站配置文件放在siteconf这个文件夹中,可以使用基于jws.exe文件的相对路径SiteLogDir=log              #指的是jexus日志文件放在log这

新手玩阿里云ECS搭建CentOS5.8搭建svn服务器支持https访问方式

关于svn,之前我也不了解这是个什么东西,去年(大二)的时候,在学校接触过一个项目,当时就用到了这个,也都不是我配置的,都是别人给我整好了,我就写代码呗,写了就提交上去,当时也没有考虑过什么事svn,现在在公司实习了,时间很充裕,就想玩玩svn,也顺便把我准备做的毕业设计都传上去,阿里云给了我机会,新手注册,ECS免费半年,多好的事,虽然没有外网带宽,但是买1M的外网带宽也就20多块钱一个月吧!我还是可以接受的,好了不废话了,阿里云在这里就不废话了,反正感觉很高大上,在这里就简单聊聊svn吧!也

Lua xavante WEB server实现xmlrpc服务器端

xavante xavante是一个使用lua实现的遵守http1.1的web server,支持wsapi. 依赖库: xavante核心 -- lua, copas(纯lua编写,网络连接coroutine处理), luasocket处理网络连接. xavante file handler -- luaFileSystem 此项目属于kepler项目的一个子项目,见官网地址: http://keplerproject.github.io/xavante/manual.html github上

iOS支持Https

http://oncenote.com/2014/10/21/Security-1-HTTPS/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 1. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全:而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTT