Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议
Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL協(xié)議:
1.用JDK自帶的Keytool生成服務(wù)器證書:
? 1)打開終端控制臺(tái),轉(zhuǎn)向tomcat主目錄,執(zhí)行生成keystore文件命令:
??? keytool -genkey -alias tomcat -keyalg RSA -keypass tomcat -storepass tomcat -keystore server.keystore -validity 3600
??? ——在tomcat主目錄下生成server.keystore文件;
? 2)根據(jù)keystore文件產(chǎn)生的證書請求,向CA申請服務(wù)器數(shù)字證書:
??? keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass tomcat
??? ——在tomcat主目錄下生成server.cer文件;
? 3)將信息中心簽發(fā)的服務(wù)器證書server.cer導(dǎo)入到server.keystore文件:
?? keytool -import -trustcacerts -alias tomcat -file server.cer -keystore? server.keystore -storepass tomcat
?
2.用JDK自帶的Keytool生成客戶端證書:
? 1)為支持證書順利導(dǎo)入到IE和Firefor,證書格式為PKCS12,命令如下:
?? keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -validity 3600 -keystore client.p12 -storepass client -keypass client
?? ——在tomcat主目錄下生成client.p12文件;
? 2)讓服務(wù)器信任客戶端證書:
?? 雙向SSL認(rèn)證,服務(wù)器要信任客戶端證書,因此要把客戶端證書添加為服務(wù)器的信任認(rèn)證,由于不能直接將PKCS12格式的證書導(dǎo)入,要先把客戶端證書導(dǎo)出為一個(gè)單獨(dú)的CER文件,命令:
?? keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass client -rfc -file client.cer
?? ——在tomcat主目錄下生成client.cer文件;
?? 將client.cer導(dǎo)入到服務(wù)器的證書庫server.keystore,添加為一個(gè)信任證書:
?? keytool -import -v -file client.cer -keystore server.keystore -storepass tomcat
?? ——認(rèn)證已添加至keystore中
? 3)通過list命令查看服務(wù)器的證書庫,可以看到兩個(gè)輸入,一個(gè)是服務(wù)器證書,一個(gè)是受信任的客戶端證書:keytool -list -keystore server.keystore -storepass tomcat
?
? 4)刪除命令:keytool -delete -alias myKey -keystore server.keystore -storepass tomcat
3.修改tomcat配置:conf/server.xml
? <!-- Define a SSL HTTP/1.1 Connector on port 8443
???????? This connector uses the JSSE configuration, when using APR, the
???????? connector should be using the OpenSSL style configuration
???????? described in the APR documentation -->
? <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
?????????????? maxThreads="150" scheme="https" secure="true"
?????????????? clientAuth="false" sslProtocol="TLS"
?????????????? keystoreFile="server.keystore" keystorePass="tomcat"
?????????????? truststoreFile="server.keystore" truststorePass="client"
??? />
? 1)clientAuth="true",雙向認(rèn)證;
? 2)clientAuth="false",單向認(rèn)證;
4.重新啟動(dòng)tomcat,執(zhí)行./bin/startup.sh命令,訪問https://127.0.0.1:8443
? 1)clientAuth="false",單向認(rèn)證,成功打開tomcat首頁;
? 2)clientAuth="true",雙向認(rèn)證,打開Firefox菜單:編輯->首選項(xiàng)->高級(jí)->加密->查看證書->你的證書,將client.p12導(dǎo)入到IE中,按照Firefox提示完成登錄tomcat首頁;
5.服務(wù)器SSl證書獲取代碼
? if(request.isSecure())//如果是SSL通信
? {
?? ?java.security.cert.X509Certificate[] certs=(java.security.cert.X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");
?? ?if(certs!=null && certs.lengtt>0)
?? ?{
?? ??? ?subjectDN="Certificates found";
?? ?}
? }
? 使用java解析證書可獲取證書中用戶信息
? issue=certs.getIssuerDN().toString();//證書簽發(fā)者
? subject=certs.getSubjectDN().getName();//證書所有者
? after=certs.getNotAfter().toString();//證書起效時(shí)間
? before=certs.getNotBefore().toString();//證書到期時(shí)間
? version=Integer.toString(certs.getVersion());//證書版本
? serialno=certs.getSerialNumber().toString();//證書序列號(hào)
?
5.參考地址:
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html? //tomcat6.0 ssl配置
http://wenku.baidu.com/view/e7b22df0f90f76c661371a6f.html??? //Tomcat SSL配置
總結(jié)
以上是生活随笔為你收集整理的Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下eclipse部署mysq
- 下一篇: Ubuntu下eclipse indig