SSL/TSL 总结

参考:https://blog.csdn.net/qq153471503/article/details/109524764

(一)生成CA证书

1、创建CA证书私钥

openssl genrsa -aes256 -out ca.key 2048 (密码:ca1234567890)

2、请求证书

openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CA/emailAddress=admin@test.com" (密码:ca1234567890)

3、自签署证书

openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer (密码:ca1234567890)

(二)生成服务器证书

1、创建服务器私钥

openssl genrsa -aes256 -out server.key 2048 (密码:server1234567890)

2、请求证书

openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=SERVER/emailAddress=admin@test.com" (密码:server1234567890)

3、使用CA证书签署服务器证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.cer (密码:ca1234567890)

(三)生成客户端证书 (密码:server1234567890)

1、创建客户端私钥

openssl genrsa -aes256 -out client.key 2048 (密码:client1234567890)

2、申请证书

openssl req -new -sha256 -key client.key -out client.csr -subj "/C=CN/ST=SD/L=JN/O=QDZY/OU=www.test.com/CN=CLIENT/emailAddress=admin@test.com" (密码:client1234567890)

3、使用CA证书签署客户端证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.cer (密码:ca1234567890)

验证:

单向认证命令行:

服务器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580 (密码:server1234567890)

客户端:

openssl s_client -CAfile ca.cer -cert client.cer -key client.key -connect 127.0.0.1 -port 22580 (密码:client1234567890)

双向认证:

服务器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580 -Verify 1 (密码:server1234567890)

客户端:

openssl s_client -CAfile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -connect 127.0.0.1 -port 22580 (密码:client1234567890)

备注:

证书的参数含义

C-----国家(Country Name)

ST----省份(State or Province Name)

L----城市(Locality Name)

O----公司(Organization Name)

OU----部门(Organizational Unit Name)

CN----产品名(Common Name)

emailAddress----邮箱(Email Address)

=================================================================================================================

Linux 系统使用 CRT,Windows 系统使用 CER

名词 含义

X.509 一种通用的证书格式,包含证书持有人的公钥,加密算法等信息

pkcs1 ~pkcs12 公钥加密(非对称加密)的一种标准(Public Key Cryptography Standards),一般存储为 .pN,, .p12 是包含证书和密的封装格式

*.der 证书的二进制存储格式(不常用)

*.pem 证书或密钥的 Base64 文本存储格式,可以单独存放证书或密钥,也可以同时存放证书或密钥

*.key 单独存放的 pem 格式的密钥,一般保存为 *.key

*.cer *.crt 两个指的都是证书,Linux 下叫 crt,Windows 下叫 cer;存储格式可以是 pem,也可以是 der

*.csr 证书签名请求(Certificate signing request),包含证书持有人的信息,如:国家,邮件,域名等信息

*.pfx 微软 IIS 的实现

*.jks Java 的 keytool 实现的证书格式

相关推荐
(:满天星:)2 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
野蛮人6号4 小时前
虚拟机网络编译器还原默认设置后VMnet8和VMnet1消失了
网络·vmware·虚拟机网络编译器·vmnet8消失
scuter_yu4 小时前
主流零信任安全产品深度介绍
运维·网络·安全
江苏思维驱动智能研究院有限公司5 小时前
Sophos 网络安全:全球领先的自适应安全解决方案提供商
网络·安全·web安全
面朝大海,春不暖,花不开5 小时前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
ChicagoTypewriter5 小时前
计算机网络中的常用表项梳理
网络·计算机网络·智能路由器
DemonAvenger6 小时前
高性能 TCP 服务器的 Go 语言实现技巧:从原理到实践
网络协议·架构·go
Bruce_Liuxiaowei8 小时前
常见高危端口风险分析与防护指南
网络·网络安全·端口·信息搜集
tmacfrank8 小时前
Android 网络全栈攻略(四)—— TCPIP 协议族与 HTTPS 协议
android·网络·https
liulilittle9 小时前
深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
开发语言·网络·c++·tcp/ip·智能路由器·tcp·通信