各种证书生成及转换

生成证书

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash

###################################################################################################################
# 生成ca pair
keytool -genkeypair -alias ca -keyalg RSA -keysize 4096 -validity 3650 -keystore ca.jks

# 查看证书
keytool -list -v -keystore ca.jks

# 导出公钥证书
keytool -export -alias ca -keystore ca.jks -rfc -file ca.cer

# 将证书导入到truststore
keytool -import -v -trustcacerts -alias ca -file ca.cer -keystore truststore.jks

# 格式转换为p12
keytool -importkeystore -srckeystore ca.jks -destkeystore ca.jks -deststoretype pkcs12

# 删除旧文件
rm ca.jks.old


###################################################################################################################
# server 证书
keytool -genkeypair -alias server -keyalg RSA -keysize 4096 -validity 3650 -keystore server.jks

# 从证书中导出签名请求
keytool -certreq -file server.csr -alias server -keystore server.jks

# 使用ca为server.csr签发证书
keytool -gencert -infile server.csr -outfile server.cer -alias ca -keystore ca.jks

# 导入ca证书
keytool -importcert -alias ca -file ca.cer -keystore server.jks

# 导入签发证书
keytool -importcert -alias server -file server.cer -keystore server.jks

# 格式转换为p12
keytool -importkeystore -srckeystore server.jks -destkeystore server.jks -deststoretype pkcs12

# delete unused files
rm server.jks.old server.csr



####################################################################################################################
# client 证书
keytool -genkeypair -alias client -keyalg RSA -keysize 4096 -validity 3650 -keystore client.jks

# 格式转换为p12
keytool -importkeystore -srckeystore client.jks -destkeystore client.jks -deststoretype pkcs12

# 从证书中导出签名请求
keytool -certreq -file client.csr -alias client -keystore client.jks

# 使用ca为server.csr签发证书
keytool -gencert -infile client.csr -outfile client.cer -alias ca -keystore ca.jks

# 导入ca证书
keytool -importcert -alias ca -file ca.cer -keystore client.jks

# 导入签发证书
keytool -importcert -alias client -file client.cer -keystore client.jks

# delete unused files
rm client.jks.old client.csr

证书格式转换(JKS,p12,pem,crt,key)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

###################################################################################################################
# jks to p12
keytool -importkeystore -srckeystore server.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore server.p12

###################################################################################################################
# p12 to jks
keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore server.jks

###################################################################################################################
# p12 to cert & key
# -clcerts Only output client certificates
# -cacerts Only output CA certificates
# -nokeys Don't output private keys
# -nodes Don't encrypt private keys
openssl pkcs12 -in server.p12 -out server.crt -nokeys -clcerts
openssl pkcs12 -in server.p12 -out server.key -nodes


###################################################################################################################
# p12 to pem
openssl pkcs12 -in server.p12 -out server.pem -nodes