IdHTTPServer开发https服务器
IdHTTPServer开发https服务器
该篇经验同样适用于DATASNAP和UNIGUI,因为它们都基于INDY10。
1)需要TIdServerIOHandlerSSLOpenSSL控件

2)设置属性

3)OPENSSL生成自签名证书
X.509证书包含三个文件:key,csr,crt。
- key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
- csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
- crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
cd d:\openssl
set OPENSSL_CONF=openssl.cfg
openssl
生成的csr 文件交给CA机构签名后,形成服务器自己的证书。按照提示,提供服务器证书的相关信息。
req -new -key server.key -out server.csr
genrsa -des3 -out client.key 2048
req -new -key client.key -out client.csr
x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
x509 -req -days 36500 -in client.csr -signkey client.key -out client.crt
openssl pkcs12 -export -clcerts -in client.crt -inkeyclient.key -out client.p12
#IOS 证书签发格式
openssl x509 -in client.crt -out client.cer
#Android 证书签发格式
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
#pem格式证书
openssl pkcs12 -export -in ddmdd_a.pfx -out client.pem
4)绑定2个端口
IdHTTPServer1.Bindings.Add.Port := port; //http port
IdHTTPServer1.Bindings.Add.Port := 6688; //https port
5)设置证书
IdServerIOHandlerSSLOpenSSL1.SSLOptions.KeyFile:= ExtractFilePath(ParamStr(0)) + 'yn.key';
IdServerIOHandlerSSLOpenSSL1.SSLOptions.CertFile:= ExtractFilePath(ParamStr(0)) + 'yn.crt';
IdServerIOHandlerSSLOpenSSL1.SSLOptions.RootCertFile:= ExtractFilePath(ParamStr(0)) + 'yn.crt';
6)准备ssleay32.dll和libeay32.dll文件
这2个文件,可以到DELPHI安装目录里面进行全文搜索,有。
中间件和客户端都需要这2个动态库文件。
因此INDY的SSL只支持MSWINDOWS平台,不支持LINUX、IOS、ANDROID平台。
7)增加事件处理,密码是生成yn.key文件时输入的
procedure TidHttpSvr.IdServerIOHandlerSSLOpenSSL1GetPassword(var Password: string);
begin Password := '123456'; end;
IdHTTPServer开发https服务器的更多相关文章
- 微信开发 api 需要 https 服务器
微信开发 api 需要 https 服务器 先建一个环境,本地的 https 服务器. 以下这篇不错,很完整. https://zhuanlan.zhihu.com/p/23640321
- 微信小程序开发(6) SSL证书及HTTPS服务器
1. 域名 在万网购买,略 2. 云服务器 阿里云购买,略 3. 安装lnmp 使用lnmp.org程序,略 4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV ...
- 开发https应用
开发https应用 SSL, 或者Secure Socket Layer,是一种允许web浏览器和web服务器通过一个安全的连接进行交流的技术.这意味着将被发送的数据在一端被翻译成密码,传送出去,然后 ...
- iOS开发HTTPS实现之信任SSL证书和自签名证书
iOS开发HTTPS实现之信任SSL证书和自签名证书 转自:http://www.jianshu.com/p/6b9c8bd5005a/comments/5539345 (收录一下供自己学习用的) 字 ...
- 其它 搭建https服务器
原因是这样的,做了个淘宝的数据管理系统(仅供自己使用),然后需要淘宝卖家的生意参谋里面的一些数据,比如实时访客,里面有每个用户搜索什么关键字进来的,这些信息. 自己基于CefSharp开发了一个win ...
- 微信支付HTTPS服务器证书验证指引
1. 背景介绍 2. 常见问题 3. 验证证书 4. 安装证书 背景介绍 微信支付使用HTTPS来保证通信安全, 在HTTPS服务器上部署了由权威机构签发的证书, 用于证明微信支付平台的真实身份. 商 ...
- 学习GO第一天,自我感觉可麻利的开干了-GO语言配置、开发、服务器部署
学习GO第一天,自我感觉可麻利的开干了-GO语言配置.开发.服务器部署 第一步下载 go sdk https://golang.org/dl/ https://storage.googleapis.c ...
- VS提示无法连接到已配置的开发web服务器的解决方法
VS2013每次启动项目调试好好的,今天出现了提示“提示无法连接到已配置的开发web服务器“,使用环境是本地IISExpress,操作系统为windows10,之前也出现过就是重启电脑又好了,这次是刚 ...
- 关于搭建HTTPS服务器服务
关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端. 服务端的 HTTPS HTTPS 已经几乎成为了当前互联网推荐的通信方式,它能最大化保证信息传输 ...
随机推荐
- HTTP协议复习二--代理
代理(Proxy)是HTTP协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客 户端的请求,也可以转发服务器的应答.代理有很多的种类,常见的有:1.匿名代理:完全“隐匿”了被代理的机器, ...
- python3实现unix域协议(tcp、udp)通讯
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain Socket.虽然网络socket也可用于同一台主机的进程间通讯(通过loopb ...
- redis 异常 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. 解决方 ...
- Sql 按日期带条件统计
select convert(char(8),[UseTime],112) dt,sum([UseMoney]) 合计,sum(case when [S_Number]=2 then UseMoney ...
- Struts框架笔记04_拦截器_标签库
目录 1. Struts2的拦截器 1.1 拦截器概述 1.2 拦截器的实现原理 1.3 Struts的执行流程 1.4 拦截器入门 1.4.1 环境搭建 1.4.2 编写拦截器 1.4.3 配置拦截 ...
- Android笔记(三十九) Android中的数据存储——SQLite(一) create
SQLite是内置于Android的一款轻量级关系型数据库,她运算速度快,占用资源少,通常只需要几百K的内存就足够了,因而特别适合在移动设备上使用. SQLite不仅支持标准的SQL语法,还遵循数据库 ...
- PHP标记风格,编码规范
PHP标记风格PHP一共支持4种标记风格 <?php echo "这是XML风格的标记"; ?> 脚本风格 <script language="php& ...
- Java--8--新特性--新的日期API
LocalDate.LocalTime.LocalDateTime 类的实 例是不可变的对象,分别表示使用 ISO-8601日 历系统的日期.时间.日期和时间. Instant 时间戳, 用于“时间戳 ...
- 【Vue-01】基础Vue语法+JS复习
Vue学习疑问及总结_SZS 0.vue router 带参数跳转 发送:this.$router.push({path:'/news',query:{id:row.id}}) 接收:var id=t ...
- SpringDataRedis的简单入门
Jedis Jedis是Redis官方推出的一款面向java的客户端,提供了很多接口供java语言调用,可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis SRP等,推荐使用 ...