centos系統中tomcat的ssl配置步驟

來源:互聯網
上載者:User

最近因為用CAS做單點登入,需要配置SSL,過程是比較簡單的,記錄下各個步驟的含義,以免日後忘記。
需求情境:CAS單點登入,要求必須是SSL,伺服器作業系統為CentOS,web容器為tomcat。
如果你作為服務提供者,那你需要看完全文
如果你作為需求客戶方,那隻需要看第三部分就可以了
 
步驟:
假設我們tomcat的路徑為/opt/tomcat,在此目錄下建立ssl目錄用於存放認證:
 
cd /opt/tomcat/ssl
 
一、首先,我們需要產生SSL認證,用到keytool工具,關鍵有三步:
①產生keystone,用以下命令
 
#keytool -genkey -alias ssologin -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3650
註:changeit是jdk中認證預設的密碼
②從keysotre中匯出別名為tomcat-cas-server的認證,產生server.crt檔案
 
#keytool -export -trustcacerts -alias ssologin -file server.crt -keystore  server.keystore -storepass changeit 
③將server.crt匯入到jre的可信任認證倉庫
 
#keytool -import -trustcacerts -alias ssologin -file server.crt -keystore  "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
注意:如果是windows主機,使用%JAVA_HOME%,如果是linux就使用$JAVA_HOME
 
二、配置好認證之後,我們需要配置tomcat支援SSL
修改conf/server.xml檔案,其中SSL部分如下,其它不用動:
 
<Connector port="443" protocol="HTTP/1.1"
        connectionTimeout="5000" URIEncoding="UTF-8"
        scheme="https" secure="true" SSLEnabled="true"
        clientAuth="false" sslProtocol="TLS"
        keystoreFile="/opt/tomcat/ssl/server.keystore"
        keystorePass="changeit"/>
修改後之後,重啟tomcat即可生效
再正式訪問之前,記得把防火牆的443連接埠開啟,centos的iptables配置如下:
 
#vi /etc/sysconfig/iptables
添加以下配置:
 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
配置完之後記得重啟iptables:
 
#service iptables restart
iptables重啟之後,你就可以通過瀏覽器訪問了https://your.domain.com
 
三、tomcat作為SSL的用戶端
如果我們的應用作為用戶端需要與開啟SSL的伺服器進行通訊,那我們必須將伺服器憑證安裝在jre的可信列表中.
具體步驟是:將上述第一步中的第②小步產生的server.crt分發給需要使用的用戶端,然後在用戶端用keytool工具匯入到jre的可信列表,如下命令:
 
#keytool -import -trustcacerts -alias ssologin -file server.crt -keystore  "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
 
注意:我這裡的機器是windows機器,所以使用%JAVA_HOME%,其實這個匯入處理程序和一.③是一樣的
 
四、其它可能會用到的認證相關命令
①列出系統倉庫中存在的認證名稱:
 
#keytool -list -keystore "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
 
如本文中添加的認證,會找到這麼一行
 
ssologin, 2014-9-4, trustedCertEntry,
認證指紋 (MD5): 12:3B:02:6F:78:6E:A6:D3:AB:96:CA:63:7D:7B:55:04
 
②消除系統中存在的名為ssologin的認證
 
#keytool  -delete  -alias  ssologin  -keystore  "$JAVA_HOME/jre/lib/security/cacerts" -storepass changeit
#keytool -delete -alias ssologin -storepass changeit
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.