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

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

  • 证数各参数含义
  • 生成CA证书
    • 创建root证书私钥
    • 创建请求证书
    • 创建自签署证书
  • 生成服务器证书
    • 创建服务器证书
    • 创建服务器请求证书
    • 使用CA证书签署服务器证书
  • 生成客户端证书
    • 创建客户端证书
    • 创建客户端请求证书
    • 使用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/[email protected]"

创建自签署证书

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/[email protected]"

使用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/[email protected]"

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

你可能感兴趣的:(运维,服务器,运维,https,ssl)