使用openssl创建自签名的证书和私钥

  1. 创建根私钥、证书和证书请求文件

root@UBT-VM: /usr/lib/ssl/demoCA# openssl genrsa -out ca-key.pem 4096

root@UBT-VM: /usr/lib/ssl/demoCA# openssl req -new -out ca-req.csr -key ca-key.pem

root@UBT-VM: /usr/lib/ssl/demoCA# openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650

 

  1. 创建服务器私钥、证书和证书请求文件

root@UBT-VM: /usr/lib/ssl/demoCA# openssl genrsa -out server-key.pem 4096

root@UBT-VM: /usr/lib/ssl/demoCA# openssl req -new -out server-req.csr -key server-key.pem

root@UBT-VM: /usr/lib/ssl/demoCA# openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650

 

  1. 创建客服端私钥、证书和证书请求文件

root@UBT-VM: /usr/lib/ssl/demoCA# openssl genrsa -out client-key.pem 4096

root@UBT-VM: /usr/lib/ssl/demoCA# openssl req -new -out client-req.csr -key client-key.pem

root@UBT-VM: /usr/lib/ssl/demoCA# openssl x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650

 

 

另一种生成证书的方法:

  1. 生成证书的脚本如下:

#!/usr/bin/env bash

openssl genrsa -out zk.private.pem 4096

openssl rsa -in ./zk.private.pem -out ./zk.public.pem

openssl req -new -key ./zk.private.pem -out ./zk.root.csr -config ./openssl.cnf -subj '/C=CN/ST=FJ/L=XM/OU=Zkteco Co., Ltd./O=ZKTeco Xiamen/CN=access.control.com'

openssl x509 -req -days 36500 -extensions v3_ca -set_serial 1 -in ./zk.root.csr -signkey ./zk.private.pem -sha256 -out ./zk.root.crt -extfile ./openssl.cnf

openssl pkcs12 -export -clcerts -in zk.root.crt -inkey zk.private.pem -out zk.p12

 

  1. openssl.cnf配置文件的内容:

[ req ]

# 生成的证书中RSA密钥对的默认长度,取值是2的整数次方。建议使用4096以上

default_bits            = 4096

# 读取输入私钥文件时的口令,如果未设置那么将会提示输入。

input_password = zkteco-xm-mjjwlw-gjz

# 保存输出私钥文件时的口令,如果未设置那么将会提示输入。

output_password = zkteco-xm-mjjwlw-gjz

# 签名默认使用的信息摘要算法,可以使用:md5,sha1,mdc2,md2

default_md              = sha1

# 保存生成的私钥文件的默认文件名

default_keyfile         = zk.private.pem

# 定义输入用户信息选项的"特征名称"字段名,该扩展字段定义了多项用户信息。

distinguished_name      = req_distinguished_name

# 生成自签名证书时要使用的证书扩展项字段名,该扩展字段定义了要加入到证书中的一系列扩展项。

x509_extensions = v3_ca

extensions           = v3_ca

req_extensions = v3_ca

# 新签发的证书默认有效期,以天为单位

default_days = 36500

 

##### 要加入到证书请求中的一系列扩展项 #####

[ v3_ca ]

basicConstraints        = CA:FALSE

subjectKeyIdentifier    = hash

#authorityKeyIdentifier = keyid:always, issuer:always

keyUsage                = critical, cRLSign, digitalSignature, keyCertSign

nsCertType = sslCA

subjectAltName          = @acc_names

 

[req_distinguished_name ]

countryName                     = CN

countryName_default             = CN

countryName_min                 = 2

countryName_max                 = 2

 

organizationName              = match

organizationName_default      = ZKTeco

  

#organizationalUnitName          = Organizational Unit Name (eg, section)

#organizationalUnitName_default  = Condor Project

   

commonName                      = zkteco

commonName_default              = zkteco Self Signed CA

commonName_max                  = 64

 

[ acc_names ]

# IPv4 localhost

DNS.1  = access.control.com

IP.1     = 192.168.227.90

IP.2     = 127.0.0.1

IP.3     = ::1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值