1. 安裝tomcat 與java 環境;
2.使用jre 程序的keytool 生成密鑰,java 我使用解壓版本並運行目錄在/usr/java,
生成tomcat.keystore 密鑰文件;
1 /usr/java/jre/bin/keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
然後會提示輸入DNS 信息及密碼:
Enter keystore password: 設置一個用於保護你keystore文件的密碼,例如123456 Re-enter new password: 重復上面的密碼 What is your first and last name? [Unknown]: yourdomain.com 輸入你網站的域名,注意Godaddy的證書一個只能簽名一個域名,也就是說 baidu.com 和 www.baidu.com 不是同一個域名,這裡應該填寫你准備簽名的那一個域名。 What is the name of your organizational unit? [Unknown]: Networking 組織單位名稱(隨便) What is the name of your organization? [Unknown]: yourdomain.com 組織名稱(隨便) What is the name of your City or Locality? [Unknown]: Guangzhou 所在城市(隨便) What is the name of your State or Province? [Unknown]: Guangdong 所在省份(隨便) What is the two-letter country code for this unit? [Unknown]: CN 所在國家的兩位代號(隨便) Is CN=www.yourdomain.com, OU=Networking, O=yourdomain.com, L=Shenzhen, ST=Guangdong, C=CN correct? [no]: yes 以上信息正確則輸入yes Enter key password for (RETURN if same as keystore password): 輸入前面的keystore 密碼
3.使用keytool 通過tomcat.keystore 生成csr文件,csr.csr 是csr的文件,提前的csr 名稱可以自定義;
1 /usr/java/jre/bin/keytool -certreq -keyalg RSA -alias tomcat -file csr.csr -keystore tomcat.keystoreGenerate csr
4.官方申請證書;
登錄到你購買 SSL 證書商(這裡是 GoDaddy),根據提示進入輸入 CSR 的頁面,用文本編輯器打開剛才生成的 csr.csr 文件,把裡面的文本內容復制粘貼到頁面的表單裡即可。SSL 證書商會根據你的域名發送一封驗證郵件到域名注冊者的Email(所以你要提前注意你的域名注冊的Email地址是什麼,如果是錯誤的話需要先修正,否則收不到驗證Email)。這個過程可能需要幾分鐘或者幾小時,收到驗證Email之後點擊裡面的鏈接地址就完成私鑰簽名了;
5.將官方生成的證書導入到 tomcat.keystore 裡面;
登錄到你購買 SSL 的證書商,下載你的網站已簽名的證書文件,在 GoDaddy 裡你下載會得到一個壓縮包,裡面放有(domain.crt,gd_bundle-g2-g1.crt,gdig2.crt)
導入的流程順序:根證書,中級證書,個人證書;
我所下載的包裡面包含:(f91dc12f8b1fb94e.crt,gd_bundle-g2-g1.crt,gdig2.crt)
所以根證書是:gd_bundle-g2-g1.crt 中級證書:gdig2.crt 個人證書:f91dc12f8b1fb94e.crt
請注意:在默認安裝證書時,到最後安裝個人證書會提示:keytool error: java.lang.Exception: Failed to establish chain from reply
解決方法:原因是官方下載的根證書與中級證書可能是過期,你到它的repository裡找到對應名稱的根證書下載覆蓋
6.導入證書:
1 usr/java/jre/bin/keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt 2 中級證書 3 /usr/java/jre/bin/keytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file gdig2.crt 4 個人證書 5 /usr/java/jre/bin/keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file f91dc12f8b1fb94e.crt
7.tomcat 配置server.xml ,先在tomcat 目錄下面新建一個ssl 文件夾存放tomcat.keystore 文件,再在新建一個/var/APP目錄做HTTPS 虛擬目錄;
1 <Service name="CatalinaApp"> 2 <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" 3 maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 4 clientAuth="false" sslProtocol="TLS" 5 keystoreFile="/usr/local/tomcat/ssl/tomcat.keystore" 6 keystorePass="keystore密碼"/> 7 8 <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" /> 9 <Engine name="CatalinaApp" defaultHost="localhost"> 10 <Realm className="org.apache.catalina.realm.LockOutRealm"> 11 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 12 resourceName="UserDatabase"/> 13 </Realm> 14 15 <Host name="localhost" appBase="/var/APP/" 16 unpackWARs="true" autoDeploy="true"> 17 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 18 prefix="APP_access_log." suffix=".txt" 19 pattern="%h %l %u %t "%r" %s %b" /> 20 21 </Host> 22 </Engine> 23 </Service>
8.啟動tomcat,添加防火牆端口,測試
http://xxxxxx/Linuxjc/1173653.html TechArticle