首先須要生成一系列私鑰文件以及證書
java
#建立根證書私鑰文件custom_ca.key openssl genrsa -out custom_ca.key 2048 #建立根證書 -subj 指定頒發者名稱 openssl req -x509 -new -key custom_ca.key -out custom_ca.cer -days 730 -subj /CN="Stonesea's CA" #建立ssl證書的私鑰文件 openssl genrsa -out server.key 2048 #建立CSR -subj指定 證書的使用者 openssl req -new -out server.req -key server.key -subj /CN=127.0.0.1/CN=192.168.159.128/CN=localhost #用CSR建立ssl證書 有效期爲100年 openssl x509 -req -in server.req -out server.cer -CAkey custom_ca.key -CA custom_ca.cer -days 36500 -CAcreateserial -CAserial server.serial #導出.p12證書,導出過程當中會要求輸入多出密碼(實驗中輸入密碼爲:stonesea) openssl pkcs12 -export -in server.cer -inkey server.key -out server.p12 -name "server" #.p12 文件導入到 java keystore 中 # -srcstorepass的值爲上一步中輸入的導出密碼 (stonesea) # -deststorepass 導出出的keystore 密碼 (將在tomcat的server.xml文件中使用) keytool -importkeystore -v -srckeystore server.p12 -srcstoretype pkcs12 -srcstorepass stonesea -destkeystore server.keystore -deststoretype jks -deststorepass justfortest
將生成的server.keystore文件複製到 tomcat的 /conf 目錄,配置 server.xml文件
shell
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf/server.keystore" keystorePass="justfortest" clientAuth="false" sslProtocol="TLS" />