1. 生成根证书
1.1 生成CA证书私钥
openssl genrsa -aes256 -out ca.key 2048
1.2 取消密钥的密码保护
openssl rsa -in ca.key -out ca.key
1.3 生成根证书签发申请文件(csr文件)
openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
上述参数含义
-
req----执行证书签发命令
-
-new----新证书签发请求
-
-key----指定私钥路径
-
-out----输出的csr文件的路径
-
C-----国家(Country Name)
-
ST----省份(State or Province Name)
-
L----城市(Locality Name)
-
O----公司(Organization Name)
-
OU----部门(Organizational Unit Name)
-
CN----产品名(Common Name)
-
emailAddress----邮箱(Email Address)
1.4 生成自签发根证书(cer文件)
openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer
上述参数含义
- x509----生成x509格式证书
- -req----输入csr文件
- -days----证书的有效期(天)
- -signkey----签发证书的私钥
- -in----要输入的csr文件
- -out----输出的cer证书文件
2. 生成服务端证书
2.1 生成服务端私钥
openssl genrsa -aes256 -out server.key 2048
2.2 取消密钥的密码保护
openssl rsa -in server.key -out server.key
2.3 生成服务端签发申请文件(csr文件)
openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
2.4 使用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
上述参数含义
- -CA----指定CA证书的路径
- -CAkey----指定CA证书的私钥路径
- -CAserial----指定证书序列号文件的路径
- -CAcreateserial----表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀
3. 生成客户端证书
3.1 生成客户端私钥
openssl genrsa -aes256 -out client.key 2048
3.2 取消密钥的密码保护
openssl rsa -in client.key -out client.key
3.3 生成客户端端签发申请文件(csr文件)
openssl req -new -sha256 -key client.key -out client.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
3.4 使用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
4. 单向认证测试
4.1 服务端启动服务
openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 44444
4.2 客户端连接
openssl s_client -CAfile ca.cer -cert client.cer -key client.key -host 127.0.0.1 -port 44444
5. 双向认证测试
5.1 服务端启动服务
openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 44444 -Verify 1
文章来源:https://www.toymoban.com/news/detail-858142.html
5.2 客户端连接
openssl s_client -CAfile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -host 127.0.0.1 -port 44444
文章来源地址https://www.toymoban.com/news/detail-858142.html
到了这里,关于openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!