再次使用xca软件生成自签证书的补充说明

本文是《再次使用xca软件生成自签证书》文章的补充说明。

概述

在上一文章《再次使用xca软件生成自签证书》,除了操作步骤说明外,还罗列了一些测试说明,后面感觉测试不够,于是再写一篇作补充。

测试

浏览器访问测试

上篇文章提到,使用自签证书,运行服务程序,使用浏览器访问,不管是360浏览器还是chrome浏览器,都提示不安全。原因是没有将自签发的CA证书添加到受信任的根证书颁发机构里。

下面安装证书。

双击根证书文件,点击"安装证书"。

因为是自签证书,所以最后有安全警告。选择"是"安装即可。

重新启动服务器,再次用浏览器访问,已经安全了。

服务端私钥使用的补充

笔者使用golang+gin进行测试,由于是自签证书,因此服务端和客户端均使用同一key,亦即私钥------也可理解为服务端证书的私钥。这点和我的认识有出入,按理说,私钥不应该透露给客户端。网上说明,客户端应只信任CA,而不是私钥。后来发现,是因为内部的系统需要双向认证,而不是单向认证,因此,最终选择使用私钥的方式。

服务端证书的补充说明

对于域名,可以用通配符,如指定 *.example.com,该证书可在 a.example.com, b.example.com 等任意子域名上使用,但总的来说,还是在example.com中使用。

对于IP地址,无法使用通配符,即不能指定某一IP网段。如使用xca工具创建证书,则在"扩展"界面中的X509v3 Subject Alternative Name字段中明确列出所有需要使用的IP地址。比如:IP:192.168.1.10, IP:192.168.1.11, IP:10.0.1.100

从笔者的测试情况看,可以基于同一根证书生成不同IP的证书,客户端证书只生成一个版本即可。程序迁移到不同服务,只需使用新的服务端证书即可,客户端证书不用更新。------当然,如果有管理规范要求客户端必须有固定的有效期的话(如每年必须更新一次),那就另说。

另外,为测试方便,服务端证书同时也支持IP:127.0.0.1。具体见上一文章截图。

公钥私钥测试

导出公钥私钥

在xca软件中,从私钥抽取出公钥进行测试。

导出私钥:

从私钥抽出公钥:

加解密测试

在golang中,可以使用x509和rsa等库实现:使用公钥对明文加密;使用私钥对密文解密。

相关工程,待后面有机会时再写。

相关推荐
00后程序员张9 小时前
HTTPS单向认证、双向认证、抓包原理与反抓包策略详解
网络协议·http·ios·小程序·https·uni-app·iphone
明豆1 天前
HTTPS / TLS 1.3 深度解析 — Web 安全传输协议生产实战
前端·安全·https
成空的梦想2 天前
免费 vs 付费国密 SSL 怎么选?
服务器·网络·网络协议·http·https·ssl
深邃-2 天前
【Web安全】-SRC平台介绍:CNVD平台-事件型漏洞-通用型漏洞,教育SRC平台,漏洞盒子,补天漏洞平台,企业SRC平台,企业和公益SRC平台
网络协议·安全·web安全·网络安全·https·src·cnvd
落叶_Jim2 天前
2026年Nginx配置HTTPS全流程-从零到自动续期实战指南
运维·nginx·https
Arman_2 天前
02 rusty-cat 实战:MeowClient 配置、任务参数、进度回调与暂停恢复
http·https·rust·tokio·文件分片上传·文件分片下载
xiaoxue..3 天前
HTTPS:更安全的HTTP,从加密原理、数字证书到TLS 握手全解析
网络协议·面试·https
Arman_3 天前
01 Rust 大文件断点上传下载入门:用 rusty-cat 让上传下载更可靠
http·https·rust·tokio·大量阅读·文件分片上传下载
仍然.4 天前
HTTPS
网络协议·http·https
刃神太酷啦4 天前
《网络基础全链路深度解析:从Socket编程到HTTPS与TCP/UDP内核机制》----《Hello Linux!》(25)
linux·运维·c语言·网络·c++·tcp/ip·https