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
   |