热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QtHttp服务器简单变成https服务器

近来被https搞晕了,由于需要微信小程序必须用到https协议,安全性比较重要喔!不过对于我们这个嵌入式产品也没什么安不安全。一开始qthttp服务器还是好简单,因为就是TCP连

近来被https搞晕了,由于需要微信小程序必须用到https协议,安全性比较重要喔!不过对于我们这个嵌入式产品也没什么安不安全。一开始qt http服务器还是好简单,因为就是TCP连接上面一个简单协议。后来听说发布小程序必须用到https+域名,估计好多刚开始往小程序里跑的小伙子都哭晕在测所。不过我不负责写小程序,我负责搞用qt 写个http的服务器。所以有后来的艰难例程!—! (你要知道我不懂网络和前端的玩意都是嘛0101那些)

入正题,环境:

qt4+qtcreator+win10

window 2012R2 service

先写好http服务器,网上好多例程,其实qt上面编程不用管https的什么ssl 那些证书什么之类,那是好麻烦等下再说我的遭遇!由于是放在云服务器上面的,所以有固定的IP,你想要https访问必须有域名+申请SSL证书**,这个和编程没关系去申请就可以了。这个过程需要时间,证书是包含xxxxx.crt证书和xxxxx.key文件,如下:

***文件夹,里面好几个服务器的证书和**

Qt Http服务器简单变成https服务器

我们是需要Nginx这个,你可先百度Nginx什么来的。。

Qt Http服务器简单变成https服务器

这里下载一个代理服务器Nginx

http://nginx.org/en/download.html

选择Window就可以了,然后放到某路径下这个是不能删的,然后解压。这个玩意一开始被网上好多人说的误导了,搞得安装特别麻烦特别麻烦特别麻烦!!!例如说什么要利用命令行安装,还有用WINSW这个也试过了,安装是成功了但是有点麻烦。Winsw就是一个可以直接命令行操作对你要想操作而它本身不能在命令行操作的nginx等***面软件。。所以现在不用他们,直接找到nginx.exe目录下的conf/nginx.conf的配置文件,用txt打开,写入一个service https,其实里面有一个不过被注释掉了。写其实就关注几点,我的例子如下:

#HTTPS server
    server {
        listen       443 ssl;  #这个不用改必须443默认
        server_name  www.xxxx.cn; #这个你要改,外网要访问过来的域名,也就是自己的域名

        ssl on;
        ssl_certificate      C:/Https_Certificate/xxxxxxx.crt;#证书路径
        ssl_certificate_key  C:/Https_Certificate/xxxxxxx.key;#**路径

        #ssl_session_cache    shared:SSL:1m;
        #ssl_session_timeout  5m;

        #ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;

        ssl_prefer_server_ciphers on;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;

    location / {
        proxy_pass      http://localhost:8090/;#我的软件端口是8090
 	proxy_connect_timeout 1s; #配置点1
        proxy_read_timeout 60s; #配置点2,如果没效,可以考虑这个时间配置长一点
        proxy_send_timeout 12s; #配置点3
    }
    }

重要就是证书**,域名,本地软件端口。

然后直接双击上一级的目录里面的nginx.exe,然后会一闪而过,惨了!!!!这个又不行?我当时是这样!然后怎么大神请教后原来已经运行了。你在命令行里输入tasklist查看进程,发现了nginx

Qt Http服务器简单变成https服务器


好了,着就行了打开你用qt写的http服务器就可以了,nginx其实就是将https握手加密的过程解决了转发数据给你,相当于透传了http。是不是好简单!!!!其中如果配置文件写的不对,重新修改先把nginx关闭,改完再双击启动!关掉可以用tskill nginx命令。。。

好了讲下我的遭遇吧,一开始听说要用ssl,于是要研究了QSslsocket那些玩意,下载了openssl回来生成自签名证书加入到服务器上面还是不行,各种不行。。这过程写了https服务器和客户端来验证,几天写来无果,客户端https外网访问没问题。就是证书加进来老是握手失败。

好了终于解决今天可以睡个好觉了。另外赞下这个nginx真的不错简单代理,他的功能还多着呢!嘻嘻 这种架构方案也不错!感谢qq好友大神1527979930热心指导谢了。。。



推荐阅读
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 本文探讨为何Request对象的外观设计被认为是精妙的,重点在于其如何利用门面模式确保数据安全,同时保持系统的高效交互。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 汇编语言标识符和表达式(四)(表达式与符号定义语句)
    7、表达式表达式是程序设计课程里的一个重要的基本概念,它可由运算符、操作符、括号、常量和一些符号连在一起的式子。在汇编语言中,表达式分为:数值表达式和地址表达式。(1)进制伪指令R ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
author-avatar
晴晴qing951025
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有