0%

openssl

  • 通过非对称算法计算得出私钥
  • 通过私钥计算得出公钥
  • 通过私钥以及输出的相关信息生成 CSR
  • 通过指定格式, CSR 以及私钥生成 CRT

1. RSA密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 生成私钥
# 无加密
# 2048位强度(为了保密性)
openssl genrsa -out rsa_private.key 2048
# 生成公钥
openssl rsa -in rsa_private.key -pubout -out rsa_public.key


# des3 加密
openssl genrsa -des3 -out server.key 2048




# aes256 加密
# -passout 代替 shell 进行密码输入
openssl genrsa -aes256 -passout pass:111111 -out rsa_aes_private.key 2048

openssl rsa -in rsa_aes_private.key -passin pass:111111 -pubout -out rsa_public.key


# 私钥转非加密
openssl rsa -in rsa_aes_private.key -passin pass:111111 -out rsa_private.key
# 私钥转加密
openssl rsa -in rsa_private.key -aes256 -passout pass:111111 -out rsa_aes_private.key
# 私钥PEM转DER
openssl rsa -in rsa_private.key -outform der-out rsa_aes_private.der



# 查看生成的私钥或公钥
openssl rsa -text -noout -in rsa_private.key

2. 生成 CSR

1
2
3
4
5
6
7
8
9
10
11
12
13

# 直接生成 私钥 和 csr
# -nodes 表示私钥不加密, 若不带参数将提示输入密码
openssl req -nodes -newkey rsa:2048 -keyout kn007.net.key -out kn007.net.csr

# -key的含义是:指定ca私钥
# -out的含义是: server.csr 生成证书文件
openssl req -new -key server.key -out server.csr

openssl req -new -key server.key -passin pass:111111 -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vivo.com/emailAddress=yy@vivo.com"

# 查看csr文件
openssl req -text -in server.csr -noout

3. 生成证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


# 生成 RSA 私钥和自签名证书

# req是证书请求的子命令,-newkey rsa:2048 -keyout private_key.pem 表示生成私钥(PKCS8格式),-nodes 表示私钥不加密,若不带参数将提示输入密码;
# -x509表示输出证书,-days365 为有效期,此后根据提示输入证书拥有者信息;
# 若执行自动输入,可使用-subj选项:
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt

# 使用 已有RSA 私钥生成自签名证书
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=vivo.com/emailAddress=yy@vivo.com"

# -new 指生成证书请求,加上-x509 表示直接输出证书,-key 指定私钥文件,其余选项与上述命令相同
openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt

openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt

4. 证书文件

X.509证书通常指的是IETF的PKIX证书和X.509 v3证书标准的CRL 文件,即如RFC 5280(通常称为PKIX for Public Key Infrastructure(X.509))中规定的。

4.1. 文件后缀

  • .der

DER 编码的证书

  • .pem

X.509 v3 证书.
是以“ - BEGIN …”前缀的ASCII(Base64)数据.

  • .crt

证书可以被编码为二进制DER或ASCII PEM

  • .cer

.crt的替代形式(Microsoft Convention)您可以在微软系统环境下将.crt转换为.cer

  • .key

用于公钥和私钥PKCS#8. 可以是二进制DER或ASCII PEM格式

5. Resource