OpenSSL创建生成CA证书、服务器、客户端证书及密钥

证数各参数含义

  • C-----国家(Country Name)
  • ST----省份(State or Province Name)
  • L----城市(Locality Name)
  • O----公司(Organization Name)
  • OU----部门(Organizational Unit Name)
  • CN----产品名(Common Name)
  • emailAddress----邮箱(Email Address)

生成CA证书

创建root证书私钥

openssl genrsa -aes256 -out ca.key 2048

创建请求证书

openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=root/emailAddress=123@demo.com"

创建自签署证书

openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer

生成服务器证书

创建服务器证书

openssl genrsa -aes256 -out server.key 2048

创建服务器请求证书

openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=server.com/emailAddress=123@demo.com"

使用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

生成客户端证书

创建客户端证书

openssl genrsa -aes256 -out client.key 2048

创建客户端请求证书

openssl req -new -sha256 -key client.key  -out client.csr -subj "/C=CN/ST=BJ/L=BJ/O=demo/OU=demo/CN=client.com/emailAddress=123@demo.com"

使用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

测试

单向认证

服务器

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580

客户端

openssl s_client -CAfile ca.cer -cert client.cer -key client.key -connect 127.0.0.1 -port 22580

双向认证

服务器:

openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 22580 -Verify 1

客户端:

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
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 OpenSSL 工具可以生成服务器客户端证书和私钥。具体步骤如下: 1. 生成服务器私钥。在终端中输入以下命令: ``` openssl genrsa -out server.key 2048 ``` 这将在当前目录下生成一个名为 `server.key` 的文件,即服务器私钥。2048 是密钥长度,你可以根据需要进行修改。 2. 生成服务器证书签发请求。在终端中输入以下命令: ``` openssl req -new -key server.key -out server.csr ``` 这将提示你输入一些信息,比如组织名称、国家、通用名称等。你可以根据需要进行填写,但是通用名称必须填写为服务器的域名或 IP 地址。 3. 签发服务器证书。在终端中输入以下命令: ``` openssl x509 -req -in server.csr -out server.crt -CA CA_cert.pem -CAkey ca.key -CAcreateserial ``` 这将使用之前生成CA 证书签发服务器证书。`CA_cert.pem` 和 `ca.key` 分别是之前生成CA 证书CA 私钥。`-CAcreateserial` 选项将会在当前目录下自动生成一个名为 `ca.srl` 的文件,用于存储证书序列号。 4. 生成客户端私钥。在终端中输入以下命令: ``` openssl genrsa -out client.key 2048 ``` 这将在当前目录下生成一个名为 `client.key` 的文件,即客户端私钥。2048 是密钥长度,你可以根据需要进行修改。 5. 生成客户端证书签发请求。在终端中输入以下命令: ``` openssl req -new -key client.key -out client.csr ``` 这将提示你输入一些信息,比如组织名称、国家、通用名称等。你可以根据需要进行填写,但是通用名称必须填写为客户端的域名或 IP 地址。 6. 签发客户端证书。在终端中输入以下命令: ``` openssl x509 -req -in client.csr -out client.crt -CA CA_cert.pem -CAkey ca.key -CAcreateserial ``` 这将使用之前生成CA 证书签发客户端证书。`CA_cert.pem` 和 `ca.key` 分别是之前生成CA 证书CA 私钥。`-CAcreateserial` 选项将会在当前目录下自动生成一个名为 `ca.srl` 的文件,用于存储证书序列号。 完成以上步骤后,你将在当前目录下生成以下文件: - `server.key`:服务器私钥 - `server.csr`:服务器证书签发请求 - `server.crt`:服务器证书 - `client.key`:客户端私钥 - `client.csr`:客户端证书签发请求 - `client.crt`:客户端证书 你可以使用这些证书和私钥来进行加密通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值