通過openssl生成nginx和tomcat的https通訊雙向證書

前提:nginx作爲服務端,java httpclient作爲客戶端

nginx需要增加nginx ssl的模塊:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/usr/local/openssl

此時,可能還需要解決make時,openssl路徑的問題,參考:

http://blog.csdn.net/u013091013/article/details/53640318

************************************指令 開始**************************************************

=======================================================
===================== 生成nginx證書 ===================
=======================================================



=====================根證書====================
1)創建根證私鑰  
openssl genrsa -out root-key.key 1024

2)創建根證書請求文件  
openssl req -new -out root-req.csr -key root-key.key

3)自籤根證書  
openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root-key.key -CAcreateserial -days 730


=====================服務端====================
4)生成服務端key  
openssl genrsa -out server-key.key 1024

5)生成服務端請求文件  
openssl req -new -out server-req.csr -key server-key.key

6)生成服務端證書
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 730

=====================客戶端====================
7)生成客戶端key  
openssl genrsa -out client-key.key 1024

8)生成客戶端請求文件  
openssl req -new -out client-req.csr -key client-key.key

9)生成客戶端證書(root證書,rootkey,客戶端key,客戶端請求文件這4個生成客戶端證書)  
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 730

10)生成客戶端p12格式根證書
openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12


密碼:client123456


=======================================================
=====================生成tomcat證書====================
===tomcat-root.truststore 和 tomcat-server.p12 ========
=======================================================



=====================ca====================
1).根據CA證書生成truststore JKS文件 root.truststore
//這一步只針對雙向認證,單向不需要
keytool -keystore tomcat-root.truststore -keypass root123456 -storepass root123456 -alias ca -import -trustcacerts -file root-cert.cer

密碼:root123456
=====================服務端====================
1).導出.p12文件 server.p12
(根據命令提示,輸入server.key密碼,創建p12密碼)
openssl pkcs12 -export -in server-cert.cer -inkey server-key.key -out tomcat-server.p12 -name "server"

密碼:server123456

2).將.p12 文件導入到keystore JKS文件 server.keystore
(這裏srcstorepass後面的server123456爲server.p12的密碼deststorepass後的server123456爲keyStore的密碼)
keytool -importkeystore -v -srckeystore tomcat-server.p12 -srcstoretype pkcs12 -srcstorepass server123456 -destkeystore tomcat-server.keystore -deststoretype jks -deststorepass server123456

密碼:server123456
=======================================================
================  java http client ====================

=======================================================

keytool -import -v -alias trustsrv -file root-cert.cer -keystore trustsrv.jks -storepass trust123456

keystore:client.p12

truststore:trustsrv.jks

*************************************指令 結束**************************************************

參考:http://blog.csdn.net/qq315737546/article/details/52864220

          https://www.jianshu.com/p/045f95c008a0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章