ssl生成
CA证书
创建私钥(ca.key)
1
| openssl genrsa -out ca/ca.key
|
创建请求(ca.csr)
1
| openssl req -new -out ca/ca.csr -key ca/ca.key -subj '/C=CN/ST=ZhengJiang/L=WenZhou/O=SimilarSu CA Corp'
|
自签署证书(ca.crt)
1
| openssl x509 -req -in ca/ca.csr -out ca/ca.crt -signkey ca/ca.key -days 3650 -extensions v3_ca
|
将.crt 文件导入到JKS文件(ca.jks)
1
| keytool -keystore ca/ca.jks -keypass cacajks -storepass cacajks -alias ca -import -trustcacerts -file ca/ca.crt
|
server端证书
创建私钥(server.key)
1
| openssl genrsa -out server/server.key
|
创建请求(server.csr)
1
| openssl req -new -out server/server.csr -key server/server.key -subj '/C=CN/ST=Zhengjiang/L=WenZhou/O=SimilarSu Server Corp/OU=dev/CN=localhost'
|
签署证书(server.crt)
1
| openssl x509 -req -in server/server.csr -out server/server.crt -signkey server/server.key -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial -days 3650 -extensions v3_ca
|
导出.p12格式(server.p12)
1
| openssl pkcs12 -export -in server/server.crt -inkey server/server.key -out server/server.p12 -passout pass:serverp12
|
将.p12 文件导入到JKS文件(server.keystore)
1
| keytool -importkeystore -v -srckeystore server/server.p12 -srcstoretype pkcs12 -srcstorepass serverp12 -destkeystore server/server.jks -deststoretype jks -deststorepass serverp12
|
注意:srcstorepass与deststorepass需要相同
client端证书
创建私钥(client.key)
1
| openssl genrsa -out client/client.key
|
创建请求(client.csr)
1
| openssl req -new -out client/client.csr -key client/client.key -subj '/C=CN/ST=Zhengjiang/L=WenZhou/O=SimilarSu Server Corp/OU=dev/CN=client'
|
签署证书(client.crt)
1
| openssl x509 -req -in client/client.csr -out client/client.crt -signkey client/client.key -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial -days 3650 -extensions v3_ca
|
导出.p12格式(client.p12)
1
| openssl pkcs12 -export -in client/client.crt -inkey client/client.key -out client/client.p12 -passout pass:clientp12
|
ssl配置
单向
服务端
1 2 3 4
| server: ssl: key-store: classpath:ssl/server/server.jks key-password: serverp12
|
客户端
双向
服务端
1 2 3 4 5 6 7
| server: ssl: key-store: classpath:ssl/server/server.jks key-password: serverp12 trust-store: classpath:ssl/ca/ca.jks trust-store-password: cacajks client-auth: need
|
客户端
1 2
| 使用ca.crt(非必要) 需倒入client.p12
|