QT编写简易的SSL证书注册工具
前言:基于内网环境中搭建的SSL证书,想要让浏览器识别并信任它,有一步非常重要的操作就是需要用户手动将证书导入到自己的‘受信任根目录’里面去。但是如果处于一个非常庞大的内网环境中,访问我们网站用户是一些不太懂https的角色岗位人员来说。他们可能更需要一个运行即可用的东西。所以我们可以创建一个exe工具或者说是驱动,来将我们的根证书直接导入到‘受信任根目录’里面去。
基于以上思路我用QT编写了一个比较简单工具,导入自签根证书到用户受信任根目录中。实现用户一键即可添加我们自己的CA机构为受信任的CA机构。话不多说直接上核心代码:
int main(int argc, char *argv[])
{UNREFERENCED_PARAMETER(argc);UNREFERENCED_PARAMETER(argv);unsigned char buffer[8192];CRYPT_DATA_BLOB key;key.cbData = 0;key.pbData = buffer;std::wstring wlpstr = this->filePath.toStdWString();LPCWSTR lpcwStr = wlpstr.c_str();HANDLE h = CreateFile(lpcwStr,FILE_GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);ReadFile(h, buffer, 8192, &key.cbData, NULL);CloseHandle(h);QString password=QString::fromLocal8Bit("xxxxxx");std::wstring ptr = password.toStdWString();LPCWSTR pStr = ptr.c_str();HCERTSTORE store = PFXImportCertStore(&key, pStr, 0);PCCERT_CONTEXT ctx = CertEnumCertificatesInStore(store, NULL);HCERTSTORE rootStore = CertOpenSystemStore(NULL, L"ROOT");bool isImport=CertAddCertificateContextToStore(rootStore, ctx, CERT_STORE_ADD_REPLACE_EXISTING, NULL);CertCloseStore(store, 0);CertCloseStore(rootStore, 0);QMessageBox::information(this, QString::fromLocal8Bit("成功"), QString::fromLocal8Bit("根证书注册成功"));return 0;
}
以上代码已经展示完了主要功能代码,注意需要使用到静态库: Crypt32.lib 。
效果截图:
到这儿相信聪明的你已经可以独立自主的完成这个工具的编写了,如果你不懂代码不懂c++但你很想拥有这个工具,您可点这儿下载(原创不易,珍惜劳动成果)。
QT编写简易的SSL证书注册工具相关推荐
- QT编写简易截图工具
QT编写简易截图工具 Windows和Linux下编译通过,版本5.9.1 ##设计界面 新建Widget项目,进入ui设计界面,添加QLabel和两个QPushButton,布局如下: Button ...
- 服务器证书在注册表上位置,服务器ssl证书注册表
服务器ssl证书注册表 内容精选 换一换 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(访问方式为HTTPS),实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄 ...
- 【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤
ssl证书简介.ssl证书生成工具与ssl证书生成步骤 一.ssl证书是什么? 二.ssl证书生成工具有哪些? 2.1.工具一:CFSSL 2.2.工具二:OpenSSL 2.3.工具三:XCA 三. ...
- macos 此服务器的证书无效_跨平台本地SSL证书生成工具,本地也能优雅的调试https...
引言 在Web开发中我们可能会遇到调用后端服务或者Api接口,在某些场景下我们可能需要走https,一般情况下我们会直接放到线上进行这样的测试,对我们的开发造成了很大程度上时间的浪费,因此用上这款神器 ...
- JDK自带工具keytool生成ssl证书(web服务https配置)
原文:https://www.cnblogs.com/zhangzb/p/5200418.html 前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl ...
- JDK自带工具keytool生成ssl证书
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...
- Qt编写的开源帖子集合(懒人专用)
回顾自己学习Qt以来九年了,在这九年多时间里面,从本论坛学习不到不少的东西,今天特意整了一下自己开源过的资源的帖子,整理一起方便大家直接跳转下载,不统计不知道,一统计吓一跳,不知不觉开源了这么多代码, ...
- 用.NET做DDNS动态域名解析和SSL证书申请
本文主要介绍 IPv6 配置 DDNS 解析和 SSL 证书申请工具的开发历程和其中的相关知识.工具使用.NET开发,已开源,目前该工具的域名解析只支持阿里云. 文中提及或使用的 .NET 开源项目: ...
- 【SSL】SSL 证书级别
SSL证书,用于加密HTTP协议,也就是HTTPS. SSL 证书级别 分为三种类型,域名型SSL证书(DV SSL).企业型SSL证书(OVSSL).增强型SSL证书(EVSSL) 1. 域名型 S ...
最新文章
- 15 个让新手爱不释手的 Python 高级库
- 分布式深度学习最佳入门(踩坑)指南
- 黄聪:DEDECMS联动调用时提示“你设定了字段为联动类型,但系统中没找到与你定义的字段名相同的联动组名!”...
- 数据库学习day_01:SQL的发展和数据库操作相关sql语句
- pythonos模块介绍_Python os模块介绍
- odoo self.ensure_one()
- 《Reids 设计与实现》第十七章 发布与订阅
- RelativeLayout相对布局
- 【工大SCIR笔记】AAAI 2020 故事结局预测任务上的区分性句子建模
- iOS ijkplayer 硬解H265(hevc)4k视频问题解决
- [手机分享]黑莓手机7系列分享之——黑莓7290
- C++求出200以内的所有质数(素数),并按每行5个输出在屏幕上。
- 储存卡误删都能恢复吗?这个方法大家用了都说好
- 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...
- 程序人生 - 如何绘制二维码?
- MonoRail学习笔记十:Controller和Url的对应关系
- 计算机网络思科平台第四章测验答案
- php 怎么远程包含,利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制...
- 说Python已经饱和的人,你一定不懂这个技能
- 【AI】Java+Fileupload+JSTL+Face++实现人脸识别系统