使用xca工具生成自签证书
本文使用 xca 生成自签证书。
概述
之前使用 openssl 生成证书,在 golang 中测试,发现客户端连接失败,经查发现是Subject Alternative Name
不支持导致的。因虚拟机 openssl 版本较低,有个功能无法实现,且升级麻烦(编译不通过),经搜索,找到 xca 工具生成证书,最终达到目的。文中所述,仅是笔者的使用,不具权威性。
小结
- 创建各类证书过程大体相类似,只是模板不同。
- 创建服务端证书时,在证书签名请求(CSR)时,设置
Subject Alternative Name
为证书使用的服务器IP(可多个)。注:域名待测试。客户端无此限制。 - 使用相同的CA证书签发服务端/客户端证书。
- 使用同一个服务端CSR,可以使用不同的参数签发不同的服务端证书,比如,已经签发了IP地址为A的证书,再次使用同一CSR,创建IP地址为B的证书。
下载
工具下载地址:https://github.com/chris2511/xca
双击 xca.exe 运行。
新建数据库
“文件”->“新建数据库”,输入数据库名称,输入2次密码。
下图创建了 foobar.xdb 数据库并使用之。
该数据库是用于存储创建、存储的证书信息,可长期使用/复用。数据库可先本地,也可选远程数据。
如果导入CA证书,似乎无法生成基于该CA证书的证书,但用相同的数据库能生成。
CA证书
创建密钥
文中使用默认值。
注:密钥在后续可复用。
创建CA证书
来源页面:
注意一定要点击“应用模板所有信息”按钮。
主体页面:
填充的:
myca
CN cststudio
Guangxi cststudio
Cenxi
cststudio
扩展页面
设置有效时间为30年。点击“应用”(注:截图未点击,左侧时间为默认年1年),再点击“OK”创建。
成功创建CA证书。
服务端证书
服务端证书的创建过程与CA证书类似, 只是模板不同。
复用密钥
创建证书签名请求
来源,选服务端。
主体页面
主体填充
server127
CN cststudio
Guangxi 127.0.0.1
Cenxi
cststudio
扩展页面
点击"OK"创建证书。
签发证书
选择服务证书,鼠标右键,点击“签发”。
来源页面:
注意选择CA证书。
扩展页面:
完成签发。
在签发步骤中,本文最为关注并设置的是Subject Alternative Name
字段。
客户端证书
客户端证书的创建过程与CA证书类似, 只是模板不同。
复用密钥
创建证书签名请求
主体页面:
主体填充
client127
CN cststudio
Guangxi 127.0.0.1
Cenxi
cststudio
其它同服务端。
点击"OK"创建证书。
签发证书
选择客户证书,鼠标右键,点击“签发”。过程略。
来源页面:
注意选择CA证书。
扩展页面:
点击“OK”完成签发。
在相同的CA证书下的服务端、客户端证书列表:
(注:文中设置了30年,但结果是1年,因为选择时,没有点击右侧的“应用”,因已截图,暂不改)
导出文件
将密钥、CA证书、服务端证书、客户端证书分别导出为单独的文件。
最终得到:
my_ca.crt 证书
client127.crt 客户端证书
server127.crt 服务端证书
创建密钥.pem 密钥 ## 此名称后续修改了
使用笔记
修改内部名称
设置有效期
可按天、月、年为单位,设置后,点击“应用”才能在左侧“不晚于”看到失效日期。
证书有效期调整
由于先创建CA证书,设置了有效期50年,接着创建服务端证书,有效期也为50年,因操作有前后,所以服务端证书的结束时间比CA证书晚,选择“自动调整日期并继续”即可。
同一CA证书可产生不同服务端的证书
使用同一CA证书,可以创建不同服务端证书(因要指定IP),使用同一客户端可正常请求。
从图中可看到从属关系。
同时包含多个IP地址的服务端证书
IP:127.0.0.1, IP:192.168.28.11, IP:192.168.18.10, IP:192.168.28.1, IP:192.168.9.100, DNS:latelee.cn
创建服务端请求
签发
golang 的使用
golang 较新版本,ssl 证书使用Subject Alternative Name
,因此需在证书中指定,从文中实验知,可指定单个IP、多个IP。
由于服务端证书指定了服务器的IP地址,证书不在指定的IP服务器运行,则无法请求。即本是服务器A的证书,在服务器B上使用,客户端无法请求B服务。
B服务输出:
http: TLS handshake error from 192.168.28.1:65102: remote error: tls: bad certificate
客户端输出:
send post failed: Post "https://192.168.28.11:9000/testing": x509: certificate is valid for 127.0.0.1, not 192.168.28.11
相关文章:
使用xca工具生成自签证书
本文使用 xca 生成自签证书。 概述 之前使用 openssl 生成证书,在 golang 中测试,发现客户端连接失败,经查发现是Subject Alternative Name不支持导致的。因虚拟机 openssl 版本较低,有个功能无法实现,且升级麻烦&…...
Unity IOS 通过命令行导出IPA
新建一个文件然后输入如下内容 #!/usr/bin/env sh /Applications/Unity/Hub/Editor/2020.1.5f1c1/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath /Users/zyt/Test -executeMethod Test.BuildEditor.BuildApp cd /Users/zyt/Test/Xcode/unity-xcode xcodebuil…...
「架构」全链路异步模式
总结自尼恩的全链路异步:网关纯异步化网关层的特点:不需要访问业务数据库只做协议转换和流量转发特点是 IO 密集型,特别适合纯异步的架构,可以极大的节省资源。如何进行网关异步化?使用高性能的通信框架Nettyÿ…...
CleanMyMac4.20最新版新增功能及电脑清理垃圾使用教程
CleanMyMac4.20作为知名的Mac清理工具,仅需一键即可快速而安全地清理系统垃圾,释放磁盘空间,因此一直深受Mac用户的喜爱。在不断更新的版本中,CleanMyMac已经不仅仅满足于只做简单的Mac清理工具,而是为Mac用户提供更多…...
Vue2的tsx开发入门完全指南
本篇文章尽量不遗漏重要环节,本着真正分享的心态,不做标题党 下面进入正题: 由于现在vue的官方脚手架已经非常完善我们就不单独配置webpack了,节省大量的时间成本。 首先使用vue/cli创建一个vue模版项目(记得是vue/…...
GLSL shader学习系列1-Hello World
这是GLSL shader系列第一篇文章,本文学习目标: 安装编辑工具编写hello world程序 安装插件 我使用VSCode编写shader代码,在VSCode上有两个好用的插件需要先装一下: Shader languages support for VS Code glsl-canvas…...
Codeforces Round #851 (Div. 2)(A~D)
A. One and Two给出一个数组,该数组仅由1和2组成,问是否有最小的k使得k位置的前缀积和后缀积相等。思路:计算2个数的前缀和即可,遍历判断。AC Code:#include <bits/stdc.h>typedef long long ll; const int N 1…...
内存保护_1:Tricore芯片MPU模块介绍
上一篇 | 返回主目录 | 下一篇 内存保护_1:Tricore芯片MPU模块介绍1 何为MPU2 MPU相关的硬件子系统2.1 基于地址范围保护逻辑说明2.1.1 地址范围寄存器2.1.2 读、写、执行权限寄存器2.1.3 保护集设置位2.1.4 内存保护功能使能位2.1.5 核的内存保护范围获取说明2.1.6…...
Vue3 -- PDF展示、添加签名(带笔锋)、导出
文章目录笔锋签名方案一实现要点实现过程组件引用页面元素添加引用实现代码效果展示缺点方案二修改页面元素替换引用修改代码效果展示完整代码地址实现功能的时候采用了两个方案,主要是第一个方案最后的实现效果并不太理想,但实现起来比较简单࿰…...
行测-判断推理-图形推理-样式规律-属性规律-曲直性
左边的图全是由曲线构成的选C1 3 5全是由曲线构成的2 4 6全是由直线构成的第三行的图形有曲有直选A1 3 5有曲有直2 4 6全是直线选D图形有曲有直,排除B D外曲内直->内曲外直->外曲内直->内曲外直->外曲内直->内曲外直所以问号出的图形应该是内曲外直选…...
idea集成Alibaba Cloud Toolkit插件
idea集成Alibaba Cloud Toolkit插件 使用该插件主要是简化打包、上传、启动服务的相关操作。 很早之前的方式是使用开发工具(eclipse,idea),使用maven命令完成项目打包(这里指jar),然后通过shell工…...
Win11 文件夹打开慢或卡顿解决方案
问题 目前是 2023/2/27, 我的 Win11 系统点开一个文件夹要等待 2-3 秒才能加载出来, 使用体验极差。网上查阅大量资料, 有些人在系统更新后这个情况就消失了, 但是我这一直存在, 系统也是当前的最新版, 没有修复。 目前得出的结论是, 因为 Win11 的工具栏占用了过多的资源, 需…...
【PostgreSQL的idle in transaction连接状态】
在平时查询pg_stat_activity这个视图的时候,每一行包含了一个进程的相关信息,包含当前正在执行的SQL,或者会话的状态等等,state字段表示当前进程的状态。在PostgreSQL数据库里,其实代码里总共定义了7种BackendState&am…...
cityengine自定义纹理库资源
背景 cityengine虽然可以将shp生成带纹理的三维模型,但是纹理不一定满足我们的要求,这时候我们就想用我们自己制作的纹理 粗略了解规则文件 了解Building_From_Footprint.cga这个规则文件,具体文件位置默认在 “C:\Users[电脑用户名:如Administrator]\Documents\CityEng…...
taobao.top.secret.bill.detail( 服务商的商家解密账单详情查询 )
¥免费必须用户授权 服务商的商家解密账单详情查询,仅对90天内的账单提供SLA保障。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 响应参数 点击获取key和secret 请求示例 TaobaoClient…...
2023软件测试金三银四常见的软件测试面试题-【抓包和网络协议篇】
八、抓包与网络协议 8.1 抓包工具怎么用 我原来的公司对于抓包这块,在App的测试用得比较多。我们会使用fiddler抓取数据检查结果,定位问题,测试安全,制造弱网环境; 如:抓取数据通过查看请求数据,请求行&…...
vue脚手架多页自动化生成实践
前言 在前端开发过程中,常常面对多种业务场景。到目前为止,前端对于不同场景的处理通常会采用不同的渲染方案来组合处理,常见的渲染方案包括:CSR(Client Side Rendering)、SSR(Server Side Rendering)、SSG(Static Site Generati…...
【SQL语句优化】
SQL语句优化是提高数据库查询性能的重要手段之一,下面是几种常见的SQL语句优化方法和案例: 减少查询的数据量 减少查询的数据量:使用 WHERE 子句和索引来限制检索行数,只检索需要的行,避免检索全部行数据。 例子&am…...
阿里P8:做测试10年我的一些经验分享,希望你们少走弯路
我是在2015年毕业的,当时是读的普通本科,不上不下的专业水平,毕业的时候,恰好遇到了金融危机。校园招聘里阴差阳错的巧合,让我走上了软件测试工程师的道路。 入职第一天,来了个高大上的讲师,记…...
栈在括号匹配中的应用(栈/链栈 纯C实现)
目录 1 问题背景 2 具体思路 3 代码实现 3.1 顺序栈实现 3.2 链栈实现 1 问题背景 栈的括号匹配问题是指在给定一个字符串(包含多种括号),判断其中的括号是否能够正确匹配,即每个左括号是否有一个对应的右括号与之匹配&#x…...
C语言Switch语句用法
C switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 语法 C 语言中 switch 语句的语法: switch(expression){case constant-expression :statement(s);break;…...
Curl编码请求参数,API接口请求示例参数
请求参数请求参数:num_iid610947572360 参数说明:num_iid:1688商品ID sales_data:&sales_data1 获取近30天成交数据 agent:&agent1 获取1688分销代发价格数据请求示例 测试入口 Curl PHP PHPsdk JAVA C# Python-- 请求示例 url 默认请求参数已经…...
【C/C++】类型限定符extern、const、Volatile、register
1、extern: 声明一个变量,extern声明的变量没有建立存储空间。 extern int a ; //变量在定义的时候创建存储空间。 ①当我们在编译器中试图运行以下代码,系统会报错。 错误原因是“无法解析外部符号_a”.系统认为变量a是没有开辟内存空间的…...
day54【代码随想录】二刷数组
文章目录前言一、二分查找(力扣724)二、移除元素(力扣27)【双指针】三、有序数组的平方(力扣977)【双指针】四、合并两个有序数组(力扣88)五、长度最小的子数组(力扣209&…...
哪个品牌蓝牙耳机性价比高?性价比高的平价蓝牙耳机推荐
现如今,随着蓝牙技术的进步,蓝牙耳机在人们日常生活中的便捷性更胜从前。越来越多的蓝牙耳机品牌被大众看见、认可。那么,哪个品牌的蓝牙耳机性价比高?接下来,我给大家推荐几款性价比高的平价蓝牙耳机,一起…...
揭秘关于TFRcord的五脏六腑
揭秘关于TFRcord的五脏六腑 前言:本篇文章将演示如何创建、解析和使用tf.Example消息,以及如何在.tfrecord文件之间对tf.Example消息进行序列化、写入和读取。 教程讲解使用的都是结构化数据,文章最后还会演示如果将图片写成.tfrecord文件&am…...
【Shell学习笔记】3.Shell 传递参数及数组
前言 本章介绍Shell的传递参数和数组。 Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,…...
【终结Bug】ModuleNotFoundError: No module named ‘cv2’
解决方案: 打开 cmd键入 pip install opencv_python -i https://pypi.tuna.tsinghua.edu.cn/simple...
SQL Server2008详细安装步骤(保姆式教程)
安装包下载 链接:https://pan.baidu.com/s/1Rjx4DHJBeCW2asC_4Kzo6Q?pwdchui 提取码:chui 安装过程 1.解压后使用管理员身份打开安装程序 2.选择全新安装或向现有安装添加新功能 3.确认 4.输入产品密钥(上方网盘安装包里有࿰…...
Linux常用操作
Linux常用操作 前言常用命令:一些操作命令:前言 本文是笔者在使用cadence的过程中,操作linux的笔记,仅记录个人常用,持续更新 常用命令: (1)高频:会了这几个就能在文件…...
留学网站建设文案/手机优化游戏性能的软件
dockerfile是一个docker-compose.yml配置文件,用户可以使用dockerfile快速创建自定义的镜像。 简单来说,就是之前我们起的容器都是单个起来的。现在我们使用dockerfile文件,将所有的容器的起来都写在dockerfile文件里。然后一起就把所有的容器…...
可视化拖拽网站建设软件/潍坊网站开发公司
MySQL提供循环语句,允许我们根据条件重复执行一个SQL代码块其中有三个循环语句:WHILE,REPEAT和LOOP,我们接下来分别看下。首先是WHILE语句来看下语法:WHILE expression DOstatements END WHILEWHILE循环在每次迭代开始…...
海东营销网站建设服务/优化大师win10能用吗
更正 经过代码以及instruments工具测试,以下更正 官方对离屏渲染产生性能问题也进行了优化: iOS 9.0 之前UIimageView跟UIButton设置圆角都会触发离屏渲染。 iOS 9.0 之后UIButton设置圆角会触发离屏渲染,而UIImageView里png图片设置圆角不会…...
南水北调中线干线工程建设管理局网站/新闻软文发布平台
(1)Constructing Objects at Run Time in SilverlightSilverlight的内容在你的页面上就像一个对象层次在树的结构中样.这是单个的.一个在这个结构中最顶上的对象是root object,也是Silverlight plug-in的Source指定相应的XAML中的root.这 个root对象通常是一个Canvas对象,因为C…...
做网站做软件怎么赚钱吗/全自动推广软件
1.输出函数 - print 用法一:print(数据) 在控制台打印指定数据,打印结束后会自动换行 print(你好世界)用法二:print(数据1,数据2,数据3,…) 一行同时打印多个数据,每个数据空格隔开…...
做门头上那个网站申报/广州最新发布最新
分析redis key的大小 bigKeys 这是redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key。例: 格式:redis-cli -h 服务端主机名或者IP地址 -p 端口 [-a password] --bigkeys $ redis-cli -h 192.168.0.112 -p 6379 --bigkeys …...