证书使用详解
参考博文:
[网络/HTTPS/Java] PKI公钥基础设施体系:数字证书(X.509)、CA机构 | 含:证书管理工具(jdk keytool / openssl)
上面的文章对证书的讲解是比较详细的,一些自己的笔记:
-
非对称密钥的用法:
- 加密:公钥加密,私钥解密
- 签名:私钥加密,公钥解密(确定信息是由私钥持有者发布)
-
颁发证书
一般由证书请求者(一般是server端)把自己的公钥+身份信息发送给颁发机构,权威机构使用自己的私钥对收到的内容进行私钥加密,并生成数字证书给证书请求者;当client拿到权威机构给server的数字证书后,可以使用权威机构的公钥对数字证书进行解密,如果能正常解密,说明数字证书中的内容(包含server的公钥等)经过了权威机构的验证,是有效的。
证书这个概念:权威机构的公钥信息,一般存放在系统自带的,已经默认信任的CA证书中;server端也可以将自己的数字证书发送给client端,该数字证书中就包含了server的公钥等信息;windows自带的CA证书:可以运行
certmgr.msc
查看:
点开CA证书查看详细信息,发现里面包含CA的公钥等内容:
-
证书之间的不同存储格式:PEM,DER,PKCS#12格式等;使用
openssl
可以将不同格式的证书相互转换
keytool命令详解:
keytool命令
自签名证书、颁发证书等内容,参考连接:
linux openssl 命令详解
Openssl生成自签名证书,简单步骤
openssl命令详解,创建CA和申请证书
使用OpenSSL自颁发证书
x.509
证书相关:rsa、crt文件、key文件、csr文件
自签名证书
openssl证书请求和自签名命令req详解->openssl req命令
对CA颁发证书后,如何验证,项目中证书的使用方式流程,可以参考该连接:
证书(Certificate)的那些事 项目开发中证书的使用梳理
其他连接:
简述PBKDF2算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通