之前我在本站有博客文章,详细说明了,如何使用 OpenSSL 程序自己签发证书,用于基于 Indy 的 WebBroker 或者 WebService 程序,然后使用浏览器或者 Delphi 开发的 WebService 客户端去访问,是没问题的。

但是,浏览器还是会提示,这个证书不可信。即便把这个证书,加入到客户端的 WINDOWS 的证书管理里面,也不行。(备注:网上有文章说,把证书导入到 WINDOWS 里面,浏览器的地址栏就变绿了,不会显示不可信的红色,但是我这里没有成功)。

今天发现,我的 WIN10 电脑上运行 WebService 的客户端去访问自签名证书的服务器没问题,在 WIN7 电脑上反倒不行,跟踪了一下,服务器端(基于 Indy)提示一堆异常,基本上判断是客户端的问题。给客户端电脑(WIN7)导入自己签发的证书,问题没有解决。在客户端电脑使用浏览器去访问,自然也是提示不可信证书,强行让它访问,浏览器倒是可以出现页面。

为了解决这个问题,试了一下腾讯签发的免费证书。

操作:

1. 去腾讯申请免费证书。申请过程很简单,页面入口自己上网一搜就有了;你必须要有一个自己的域名。假设我这里输入的域名是 myDomainName.net.

2. 证书申请成功后,下载证书,是一个 ZIP 文件;

3. 这个 ZIP 包里面有 IIS, APACHE 等目录,里面的文件估计是给对应的 WEB SERVER 使用的,不用管它。我这里是使用 INDY 这个 WEB SERVER;

4. 这个 ZIP 包里面,有 3 个文件:

4.1. myDomainName.net.csr;

4.2. myDomainName.net.key

4.3. myDomainName.net.pem

5. 对于 Indy 来说,它需要3个文件:证书,根证书,以及 key;这里,证书和根证书,都使用 myDomainName.net.pem,不能使用 myDomain.Name.net.csr。

代码如下:

IdServerIOHandlerSSLOpenSSL1.SSLOptions.CertFile := TPath.Combine(Self.GetMyPath, 'MyDomainName.net.pem');
IdServerIOHandlerSSLOpenSSL1.SSLOptions.KeyFile := TPath.Combine(Self.GetMyPath, 'MyDomainName.net.key');
IdServerIOHandlerSSLOpenSSL1.SSLOptions.RootCertFile := TPath.Combine(Self.GetMyPath, 'MyDomainName.net.pem'); 

6. 这里的 IdServerIOHandlerSSLOpenSSL1 是拖到界面上的控件。这个控件是 Indy 带来用于支持 SSL 的控件。设置它的一些参数,比如上述代码,指定它需要的证书文件等等,然后把它和 Indy 的 WebServer 绑定。绑定的代码:

FServer: TIdHTTPWebBrokerBridge;FServer.IOHandler := IdServerIOHandlerSSLOpenSSL1;

7. 这个 IdServerIOHandlerSSLOpenSSL1 在设计期,打开属性面板,设置其它属性:

7.1. IdServerIOHandlerSSLOpenSSL1.SSLVersions 里面的各个版本全打勾,只有 sslvSSLv23无法打勾(设计期,无法勾上);

7.2. IdServerIOHandlerSSLOpenSSL1.SSLOptions.VerifyMode := [];

7.3. IdServerIOHandlerSSLOpenSSL1.SSLOptions.VerifyDepth  := 0;

8. 做完上述设置,这个服务器编译运行,就支持 https 访问了。

9. 测试:服务器运行,打开浏览器,地址栏输入 https://127.0.0.1:8080 结果浏览器提示不安全,提示信息是这个证书的域名和当前浏览器访问的域名不同。把 Windows 的 host 文件拿出来,增加一条域名解析:127.0.0.1  myDomainName.net ,然后在浏览器里面使用 https://myDomainName.net:8080 访问,成功,浏览器不再提示不安全,浏览器地址栏也不显示红色了。

10. 做了上述 host 域名解析设置后,使用 Delphi 开发的 WebService 客户端去访问 myDomainName.net 结果阻塞,可能是域名解析不成功导致。直接使用 127.0.0.1 去访问,成功。之前使用自己签发的证书,则使用 127.0.0.1 去访问是不成功的(再次说明:在 WIN10 上是成功的,在 WIN7 上不成功)。

结论:

基于 Indy 开发的 WebServer (比如 WebBroker 程序) 或者 WebService 服务器端程序,加载从腾讯申请的证书,可以让浏览器做 https 访问的时候,成功验证通过。

使用 Indy WEB Server 支持 https相关推荐

  1. web Server支持 perl

    最近使用DCMTK 安装worklist 需要用到webserver支持perl. DCMTK官方建议用NCSA Httpd1.5来安装webserver,但是这个软件一般用在Unix/Linux上, ...

  2. 使用nmap查看web服务支持的http methods

    安装nmap yum install nmap 查看web server支持的http methods u02 ~]$ nmap -p 443 --script http-methods www.so ...

  3. 使用C#开发HTTP服务器之支持HTTPS

      各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.本文是"使用C#开发HTTP服务器"系列的第六篇文章,在这个系列文章 ...

  4. goahead如何使用cgi服务_GoAhead Web Server的特性及技术

    最近一段时间,一直在搞嵌入式开发,公司一产品需要升级改造,结果发现应用的是Linux平台和GoAhead的web服务器,所以经过多方的了解,现把总结内容总结一下,大家一起和我来学习GoAhead吧. ...

  5. web server大全之GoAhead移植(转载)

    转自:http://linux.chinaunix.net/techdoc/develop/2009/06/19/1119124.shtml 注:最近在做goAhead web server和移植其到 ...

  6. Nginx负载均衡:分布式/热备Web Server的搭建

    Nginx是一款轻量级的Web server/反向代理server及电子邮件(IMAP/POP3)代理server.并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开 ...

  7. how tomcat works 1 simple web server

    2019独角兽企业重金招聘Python工程师标准>>> HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径. ...

  8. TurboMail邮件系统支持HTTPS双向认证

    2019独角兽企业重金招聘Python工程师标准>>> HTTP单向认证已经被普遍应用,而对企业邮箱安全保密要求更加严格的企事业单位,例如国家保密局等单位,为了达到闭环的安全加密要求 ...

  9. 实战:Nginx + FastCGI 程序(C/C++) 搭建高性能web server

    1.介绍 Nginx - 高性能web server,这个不用多说了,大家都知道. FastCGI程序 - 常驻型CGI程序,它是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程 ...

最新文章

  1. 顺时针打印矩阵 python
  2. mysql 负载 查看_Mysql-命令查询当前正在负载运行的SQL语句
  3. 关于PHP 使用 unset 销毁变量 但是 没有销毁内存的 记录
  4. java数组元素相加_数组元素相加
  5. SAP Netweaver的负载均衡消息服务器 vs CloudFoundry的App Router
  6. python 按键精灵识图_利用-百度云通用文字识别-图片转文字
  7. SWOT分析是神马?
  8. 【.NET框架】—— ASP.NET MVC5路由基础(五)
  9. 浅析概率中的频率学派观点和贝叶斯学派观点
  10. spring集合quartz获取所有定时任务的下次时间
  11. Menu菜单资源Android
  12. 19个程序员接私活平台汇总升级版!你有技术就有钱!
  13. Linux 录屏软件有哪些?
  14. H3C nqa 配置
  15. MAC安装Charles破解版简易教程
  16. poi实现word转html
  17. Bitmap毛边问题
  18. 印象派绘画在现代艺术发展中的地位和作用
  19. ubuntu18.04中文输入法(by搜狗)
  20. 浅谈SAP公有云:S4 HANA Cloud

热门文章

  1. discuz 头像html5上传,discuz更新H5头像上传
  2. c语言微课名称大全,微课在高职《C语言程序设计》课程中的初探
  3. 小学教师计算机培训课程感言,小学教师信息技术课程学习心得体会
  4. ARM GPU mali系列产品规划图或天梯图
  5. 遗传算法(Python) #5 用DEAP框架解决OneMax问题
  6. maven3.0.4学习笔记(三)-坐标
  7. 《CWNA官方学习指南(第3版):认证无线网络管理员PW0-105》
  8. 利用搜索引擎来搜索特定网站中的关键词
  9. 一台ubuntu服务器不慎将kernal 删除,恢复过程
  10. xorbootuefi添加linux,XORBOOTUefi-官方版-XORBOOTUefi(多系统启动工具)0.0.2官方版-独木成林...